黑马程序员--------------对象的实例化思考

来源:互联网 发布:上海一姐张弦淘宝店 编辑:程序博客网 时间:2024/06/06 02:49

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 

对象是类的实例,类是对象的统称,一个类有一个或者多个对象 类 对象=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、构造方法

0 0