这周学习Java的面向对象(上)
1、如果在某一个方法中定义局部变量与与成员变量同名时,该方法中通过变量名访问到的是局部 变量,而非成员变量。
2、类是自定义类型,也是一种引用类型,因此该对象名是一个引用变量,默认值为null,表示不 指向任何堆内存空间。
3、声明和实例化对象:
类名 对象名 = new 类名();
如:
Person p = new Person();
4、封装:
(1)在Java中一般用到访问修饰符时每一个成员前都有一个访问修饰符
(2)默认:可以访问 本类;可以访问 同包中的类;不能访问 子类;不能访问 其他类
(定义在同一个程序中的所有类属于一个包)
5、this指针调用:
(1)this指针调用成员函数:this.log( );
(2)this指针调用无参构造:this( );
(3)this指针调用有参构造:this(null,0);
6、引用链,从对象节点GC ROOT开始,向下寻找节点;当一个对象到GC ROOT没有任何应用 链相连时,即为无用节点,会被判定为可回收对象。
7、System.gc( )进行垃圾回收
8、构造代码块:直接定义在类中的代码块,没有任何前缀、后缀及关键字修饰。构造代码块在创 建对象时被调用,构造代码块优于构造方法(在c++中是构造函数)执行
9、静态代码块:
static{ System.out.println(“主方法所在类的静态代码块”);}
其优于主方法和构造代码块执行,且只会执行一次
10、单例模式:
(1)只提供私有的构造方法
(2)类定义中只含有一个该类的静态私有对象
(3)提供一个静态的共有的方法用于创建或获取它本身的静态私有对象
11、内部类:
(1)内部类与外部类经Java编译器编译后生成的两个类是独立的
(2)内部类是外部类的一个成员,因此可以访问外部类的任何成员,但外部类不能直接访问内部类成员
(3)内部类可为静态,可用protected和private修饰,而外部类只能用public和默认的权限访问
12、在外部类外创建一个内部类对象的语法格式如下:
外部类名.内部类名 引用变量名 = new 外部类名( ).new 内部类名( )
13、方法内部类是指在成员方法中定义的类,只能在定义该内部类的方法内实例化
匿名内部类就是没有名字的内部类,创建时会立即创建一个该类的对象,该类定义立即消失,匿名内部类不能重复使用