一、程序:程序是为了模拟现实世界,解决现实生活中的问题。

二、对象【重点 理解 掌握】

a) 一切客观存在的事物都是对象,万物皆对象。
b) 对象都具备特征和行为。
i.特征:代表的是对象有什么,一般为名词。也称之为属性。
ii.行为:代表的是对象能做什么,一般为动词。也称之为方法。

三、类【重点理解掌握】

a) 类是对象的模板。
b) 对象是类的实例。
c) 如何抽取出正确的模板(类)
在一组相同或者类似的对象中抽取出共性的特征和行为,保留所关注的部分。
d) 属性
i.定义方式同变量,成员变量/实例变量
ii.语法:数据类型 属性名;
iii.定义位置:类中,方法的外面。

java基础语法-面向对象(1)

e)方法
i.定义方式同函数,不加static,成员方法/实例方法
ii.public 返回值类型 方法名(参数表){}
iii.定义位置:类中
java基础语法-面向对象(1)
f)创建对象:借助于new 关键字,基于类名进行创建
语法: 类名 对象名|引用名 = new 类名();
赋值:对象名.属性名 = 值;
取值:对象名.属性名
赋予方法:对象名.方法名();
g)类中定义对象应该具备的属性和方法,类是对象的模板,只能存在一个。
h)对象是具有多个属性和方法的实例,对象可以创建多个。

四、实例变量与局部变量之间的区别【重点】
局部变量 :
定义在函数内部的变量 、无默认值、定义位置开始到定义的代码块结束、 在重合范围内不允许两个局部变量重名。
实例变量:类中,方法外面、存在默认值,同数组、存在默认值,同数组、不允许两个实例变量重名,但是实例变量可以和局部变量重名,以局部变量优先。

五、对象的内存分配
java基础语法-面向对象(1)
创建对象首先会在堆中开辟处一块空间,用来存储对象的属性,并同时赋予默认值,接着将对象的地址保存在自身的类型中(类型称之为对象类型或者引用类型),同时赋予一个对象名或者称之为引用名,这个引用名指向的就是对空间中的对象。

六、方法的重载(overload)
a)方法名相同,参数列表不同。(顺序、个数、类型)
b) 方法的重载跟返回值类型是无关的。
c)方法的形参类型相同,形参名不同不构成方法的重载。
d)具体采用哪一个方法实现,根据传入的参数去选择相匹配的方法实现。
e)方法重载:屏蔽了使用者的差异。

七、构造方法
a)概念 :在创建对象的时候调用的方法称之为构造方法。
b)定义的位置:在类中,与其他方法、属性并列。
c)特点:
i.方法名必须和类名完全一致。
ii.没有返回值类型 (没有返回值(void) )
iii.不能通过手工调用的方式(句点的方式)对构造方法进行调用。在创建对象的时候由JVM自动调用。
d)创建对象的过程
i.在堆中分配空间
ii.初始化属性(为属性赋予默认值)
iii.执行构造方法中的代码
iv.[将创建好的对象的地址保存在对象名中]
java基础语法-面向对象(1)
e)构造方法同样支持重载,同样会遵守方法重载的特点,会根据传入的参数不同匹配与之相对应的方法,进而执行构造方法中的代码。
f)当类中没有定义任意的构造方法时,编译器会默认提供一个无参的构造方法。
当程序中提供了有参构造时,无参构造不再默认提供 。无参构造根据需要可以自己定义。但是建议:定义类时,带上无参构造。
g)在创建对象的时候,可以通过构造方法为属性赋值,但是必须区分实例变量和局部变量。

h)对象赋值的机会(对象创建的过程)
i.分配空间
ii.初始化属性
iii.执行构造方法中的代码
iv.【将对象的地址保存在自身类型中的引用中。】
默认值—>初始化赋值-构造方法赋值---->创建对象之后赋值

八、赋值规则

a)基本数据类型之间的赋值是值传递,一个值的改变不影响另外一个值的改变。
b)引用类型之间的赋值是地址间的传递,一个对象的值的改变会影响另一个对象的值的改变。引用类型的变量称之为引用,里面存的是对象的地址,通过引用可以访问堆空间中的对象,进而操作对象的属性和方法

九、this关键字

a) this:代表当前对象,类似于“我”,可以访问当前对象的属性和方法。
i.this.属性:访问当前对象的属性,可以省略。
1.当局部变量和成员不出现重名的时候可以省略this
2.当局部变量和成员变量出现命名冲突的时候,可以用this.属性名表示成员变量,以达到区分局部变量和成员变量的目的。
ii.this.方法():代表的是访问当前的对象的方法,同样可以省略。

b)this()代表在本类中调用本类中的其他构造方法。
i.this():代表调用本类中的无参构造方法。
ii.this(实参):代表的是调用本类中的其他有参构造方法。
iii.this()使用需要注意的地方
1.this()代表调用本类中的其他构造方法,只能在本类中构造方法中使用。
2.对this()的调用必须是构造方法中的有效第一行
3.不能使用递归调用。

相关文章: