1. 类中变量的分类this
1)局部变量:在方法中定义的变量spa
2)成员变量:类的属性code
3)类变量:静态变量,用static修饰对象
2. 关于构造方法blog
每一个类都有一个构造方法,没写的,默认有一个空的构造方法。同时,构造方法能够重载(同名但参数列表不一样)。继承
3. 关于final教程
修饰类:该类没法被继承接口
修饰方法:该方法没法被覆盖或者说重写(子类本身再写一个相同的方法)作用域
修饰属性:常量get
4. 引用和对象实例
【类名】【对象名】 = new 【类名】();
其中,“【类名】【对象名】”只是建立了一个对象的引用,而“new 【类名】();” 才是在堆区中建立了对象。因此,
Object o1 = new Object(); Object o2 = o1; // 只是起了一个别名
以上操做并不会建立连个对象,而是两个引用指向了同一个对象。
5. 权限修饰符
权限 | 本类 | 同包 | 子类 | 其余 |
private | ● | |||
默认 | ● | ● | ||
protected | ● | ● | ● | |
public | ● | ● | ● | ● |
利用权限封装:先将属性用private修饰,而后使用建立相应的get和set方法。
6. 关于this
避免因为和成员变量重名而发生的冲突。
public class DemoClass { privated int x = 1; public void setX(int x) { this.x = x; } }
7. 关于继承
使用关键字extends父类,可使用除privated外父类全部的属性和方法,同时子类还能够重写父类的方法。Java中的继承方式是单继承,同时引入接口interface弥补单继承的不足之处。
8. 关于super
1)访问父类的方法和属性时加用“super.XXX”;
2)调用父类的构造方法时,在子类的第一行添加“super()”方法。
9. 关于重载和重写
1)重载:同一个类中,方法名相同,可是参数列表相同;
2)重写:子类继承父类时,写一个和父类彻底相同的方法,调用时,优先使用子类本身定义的方法。
10. 向上转型和向下转型
1)向上转型:父类对象引用指向子类对象,该引用不能访问子类独有的属性和方法,同时优先访问子类重写过的方法;
2)向下转型:建立一个子类的对象引用,并指向向上转型过的对象。
// 《菜鸟教程》的一个实例
public class Test { public static void main(String[] args) { show(new Cat()); // 以 Cat 对象调用 show 方法 show(new Dog()); // 以 Dog 对象调用 show 方法 Animal a = new Cat(); // 向上转型 a.eat(); // 调用的是 Cat 的 eat Cat c = (Cat)a; // 向下转型 c.work(); // 调用的是 Cat 的 work } public static void show(Animal a) { a.eat(); // 类型判断 if (a instanceof Cat) { // 猫作的事情 Cat c = (Cat)a; c.work(); } else if (a instanceof Dog) { // 狗作的事情 Dog c = (Dog)a; c.work(); } } } abstract class Animal { abstract void eat(); } class Cat extends Animal { public void eat() { System.out.println("吃鱼"); } public void work() { System.out.println("抓老鼠"); } } class Dog extends Animal { public void eat() { System.out.println("吃骨头"); } public void work() { System.out.println("看家"); } }
11. 抽象类
1)用关键字abstract修饰抽象方法和和抽象名;
2)抽象类能够包含普通方法,能够不包含抽象方法,但有抽象方法的必定是抽象类。
public abstract Demo{ public abstract void fun(){ } }
12. 关于接口
1) 不能用于实例化对象;
2) 接口中的方法有抽象方法(能够不加abstract修饰符,默认就是抽象方法)、default方法(加default修饰符,至关于类中的普通方法)和静态方法(调用时使用“【类名】.【方法名】”);
3) 成员变量是static final类型;
4)一个接口能够继承多个接口,一个类也可使用多个接口。
13. 关于内部类
1)成员内部类:至关于一种特殊的成员变量;能够直接访问外部类的属性和方法,反之不行,遇到属性和方法相同时,优先用本身的,也能够借助this用外部的;没法拥有static属性和方法;
2)静态成员类(嵌套类):成员内部类用static修饰;
3)局部内部类:定义在方法和做用域内的内部类;
4)匿名内部类:没有名字的内部类,用于简化代码,只能用一次。