回顾笔记2

关注
回顾笔记2www.shan-machinery.com

abstract:抽象类 可以修饰类 修饰方法 * 不能用来修饰属性 构造器 private、final、static * 1)构造器不能被重写 * 2)子类不能重写 private的方法 * 3)final同上 **** 1.abstract修饰类 抽象类 * 1)不可以被实例化 * 2)抽象类有构造器(凡是类都有构造器) * 3)抽象方法所在的类,一定是抽象类 * 4)抽象类中可以没有抽象方法 ** 2.abstract修饰方法 * 1)格式:没有方法体包括{}如 public abstract void eat(); * 2)抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写此抽象方法 * 3)若子类继承抽象类,并重写抽象方法,便可实例化 * 4)若子类继承抽象类,没有重写所有抽象方法,意味着此类仍为抽象类。

 

 

接口(interface)是与类的并行的一个概念 * 1.接口可以看作是一个特殊的抽象类。是常量与抽象方法的一个集合,不能含有变量 一般的的方法 * 2.接口没有构造器 * 3.接口定义的就是一种功能,此功能可以被类所实现(implements) *比如class DD extends CC implements AA *4.实现接口的类,必须重写所有的抽象方法,方可实例化,否则,仍为抽象类。 *5.类可以实现多个接口 *6.接口与接口之间也是继承的关系(而且可以实现多继承)

 

类的第四个成员:初始化块(或代码块) * 1.代码块如果有修饰的话,那么只能用static * 2.分类: * 非静态代码块: * 1.可以对类的属性进行初始化操作 * 2.里面可以有输出语句 * 3.一个类中可以有多个非静态的代码块,多个代码块之间按照顺序结构进行 * 4.每创建一个类的对象,非静态代码块就加载一次 * 5.非静态代码块的执行要早于构造器 ** 静态代码块: * 1.里面可以输出语句 * 2.随着类的加载而加载,而且只被加载一次 * 3.多个静态代码块之间按照顺序结构执行 * 4.静态代码块的执行要早于非静态代码块 * 5.静态的代码块只能执行静态的结构(类属性 类方法) *** 关于属性赋值的操作:①默认的初始化②显示的初始化或代码块初始化③在构造器中④通过方法对对象相应的属性进行赋值。

 

 

/* * 设计模式:是在大量实战中总结和理论化之后优选的代码块结构,编程风格,以及解决问题的思考方式。 * 23种设计模式 ** 单利的设计模式 * 饿汉式 */public class TestSingleton { public static void main(String[] args) { Singleton s1 =Singleton.getSletoner(); Singleton s2 =Singleton.getSletoner(); System.out.println(s1==s2);}}

class Singleton {privatestatic Singleton instance = new Singleton();//创建类的对象 同时设为private 要求对象也私有化

private Singleton(){//私有化构造器

}public static Singleton getSletoner(){//通过公共方法调用 return instance;}

}

 

 

 

/* * final:最终的。可以用来修饰类,属性,方法 * 1.final修饰类:这个类就不能被继承。如:String类,StringBuffer类 * 2.final修饰方法:不能被重写。如:Pbject类的getClass() ** 3.final修饰属性:此属性就是一个常量 习惯上用大写字母符表示。 * 此常量在哪里赋值:①此常量不能使用默认初始化②可以显示赋值 代码块 构造器 ** 变量staticfinal修饰 全局常量 通过类调用的且不能被更改 * * */

public class TextFinal {public static void main(String[] args) {m m1 = new m();// 不能被改动System.out.println(m1.getI());N n = new N();n1 n1 = new n1();System.out.println(n1.addI(n));// 这时对象n对应的属性 可以随意改变

}}

class m {final int I = 10;

public int getI() {return I;}

}

class n1 {public int addI(final N n) {return n.i++;}}

class N {int i = 20;}

https://www.shan-machinery.com