本帖最后由 lanzy1989 于 2014-9-18 21:16 编辑
对象是类的实例,类是对象的统称,一个类有一个或者多个对象
类 对象=new 类();给类创建一个对象
对象.类属性=赋值;对对象的属性进行修改
对象.类方法();使用类对象的功能
封装
private只能在本类中访问,可以再该类中设置修改变量的方法和取出方法,既get/set方法,需要对外开放的get/set方法(public)
注意:所有的赋值方法写成set属性名,所有的取值方法写成get属性名(人为规定的,普遍公认的,提高代码阅读性)
public:公共访问权限
private:私有的访问权限
(访问权限的修饰符,*通常*在最前面)
被private修饰的成员函数(成员方法)也不能被外界访问,必须在本类中访问(不会报错。但是该方法失去意义了)
匿名对象:没有名字;
注意事项:单独调用时。只能使用一次,再创造新对象时,与前面的对象无关
当作为参数传递时,可以使用匿名对象(参照数组)(是指不需要使用它,只需要使用它作为传递作用,如下:
fockLond(new classes());
public static void fockLond(classes c){
System.out.println(c.fockLond);
}
在该例中,new classes()匿名对象只是传递了参数fockLond到对象c中,它并没有直接指向fockLond对应的属性,它与c指向同一个参数,起传递的作用)
(匿名对象主要可以用来测试调用的类中的一些初始化问题,看创建对象后的数据初始化的输出结果是什么)
构造函数(构造器):在创建一个类的实例时,调用的方法即构造方法。构造方法是用来构造实例对象的。
特点:如果我们没有手动给出构造方法,则java给我们提供一个无参的构造方法,(例如Person p=new Person();后面的Person()就是java提供的创建对象的方法)
当手动给出构造函数,java就不再给我们提供构造函数了
一般函数:public 返回值类型 函数名(参数类型 参数名1,参数类型 参数名2.。。){逻辑代码}
构造函数:有参构造方法:public 函数名(与类名相同,不分大小驼峰式,与类名一致)(){逻辑代码}
无参构造方法:public 函数名(与类名相同,不分大小驼峰式,与类名一致)(参数类型 参数名1,参数类型 参数名2.。。){逻辑代码}
可以用重载同时设置有参无参构造函数;
有参构造方法在创建实例对象时,直接为成员变量赋值;
为属性赋值:
1、使用对应的gs(getters与setters)
2、直接在
this关键字:this代表当前对象的引用
this。属性名访问的是成员变量
属性名:就近原则,先访问局部变量,在
this的另外用法
直接使用“类名()”无法调用构造函数
在构造函数中可以通过this(参数)来调用其他重载的构造函数
this调用的构造函数必须放在第一行
static关键字:
静态关键字
当使用static关键字修饰之后,这个属性就会被所有实例对象共享
使用static关键字修饰后,一次修改,就会影响所有实例;
使用static关键字修饰后,可以使用类名直接访问该属性/方法,不需要使用实例对象,但是可以使用实例对象访问或者调用
使用static关键字修饰后,该属性因为被共享,所以一般不再使用private关键字修饰,同样也不再有gs;
一般情况下,使用static关键字修饰后的属性均为常量,与final共同使用
成员变量和成员方法都可以使用static修饰;
代码块:用{}划定范围的代码区域:
变量作用域控制,影响变量的生命周期
局部代码块,定义在方法中;
构造代码块,定义在类中。当我运行一个新的实例就会运行一遍。
对象实例化顺序:
1、构造方法(不执行语句,只是表明我要创建实例对象)
2、属性默认初始化
3、静态显示初始化>静态代码块
根据定义的先后顺序决定,一般静态构造代码块写在属性后边。所以一般认为静态显示初始化在静态构造代码块之前。
4、显示初始化>构造代码块:
根据定义的先后顺序决定,一般构造代码块写在属性后边。所以一般认为显示初始化在构造代码块之前。
5、构造方法(构造方法的内容)
总体顺序前提:先静态(优于对象存在的),后非静态
注意: 构造方法在每次创建爱你对象时都执行
构造代码块在每次创建时都执行
静态构造代码块只在第一次创建对象时执行
通常使用代码块来初始化一些属性。做一些系统的准备工作。
抛弃静态不考虑:
1、默认初始化
2、显示初始化
3、构造代码块
4、构造方法
|
|