<1>面向对象编程的优点:1
:将复杂的事情简单化。2
:将以前的过程中的执行者变成指挥者。3
:符合人们思考习惯。面向对象的三大特征:封装、继承、多态;
<2>Java
中最基本的单位是类。类是一组相关属性、行为的集合,是对象共有属性的一种抽象,通过类可以创建对象。创建对象的方法:类名 对象名 = new 类名();
对象都有属性和相关行为,在类中定义其实都称之为成员。成员有两种:1
:成员变量:其实对应的就是事物的属性。2
:成员方法:其实对应的就是事物的行为。
<3>变量的作用域和生存期:作用域从变量定义的位置开始,到该变量所在的那对大括号结束;生命周期从定义的位置开始就在内存中存在,变量到达它所在的作用域的时候就在内存中消失。
局部变量与成员变量区别:1
、定义不同:局部变量定义于方法内,成员变量定义于类中方法外。2
、数据存储方式不同:局部变量进栈内存(属于方法);成员变量进堆内存(属于对象)3
、生命周期:局部变量随着方法出栈而消失,成员变量随着对象消失而消失;4
、初始化值不同:局部变量无初始化值,要使用需要赋值,成员变量有初始化值。注:当成员变量与局部变量名相同,采用就近原则。
<4>匿名对象:创建方式为new
类名()
,使用场景:1
:当对方法只进行一次调用的时候,使用匿名对象。2
:当对象对成员进行多次调用时,不能使用匿名对象。必须给对象起名。因每调用一次匿名对象会产生一个对象。匿名对象可以设置属性,但设置后,对象会变为垃圾,没有意义。
<5>封装: 使用private
关键字。隐藏对象的属性和实现细节,对外提供setxxx()
和getxxx()
方法进行访问。可以在方法中加入逻辑判断等操作,对数据进行判断等操作。
<6>this
关键字:代表所在方法所属对象引用。哪个对象调用了该方法,就代表哪个对象。可以用于区分成员变量和局部变量重名;this
和super
的区别:this
代表当前对象的引用,super
代表父类的引用。
<7>构造方法:给属性初始化;如果没有提供构造方法,系统会默认给一个空参构造;如果提供,系统不再提供;实际操作中,建议写无参构造。
<8>静态(static)
:成员变量加static
后,所有对象都拥有一个共有属性,只要对象一个对象设定后,其余对象默认都有该属性。static
随着类的加载而加载,优先于对象存在。静态方法和属性被类所有对象共享,可以通过类名调用。static
注意事项:静态中无this
关键字,静态随类加载,this
为当前对象的引用,类加载时还不一定创建了对象;静态只能访问静态,静态优先于对象存在,无法访问对象中变量和方法。
<9>成员变量和静态变量的区别:1
,成员变量所属于对象。所以也称为实例变量。静态变量所属于类。所以也称为类变量。2
,成员变量存在于堆内存中。静态变量存在于方法区中。3
,成员变量随着对象创建而存在。随着对象被回收而消失。静态变量随着类的加载而存在。随着类的消失而消失。4
,成员变量只能被对象所调用 。静态变量可以被对象调用,也可以被类名调用。因此,成员变量可以看做对象的特有数据,静态变量可以看做对象的共享数据。
All I want to do in my hole life is to make the web a better place. Cheer up