回顾笔记2

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 {
private static Singleton instance = new Singleton();//创建类的对象 同时设为private 要求对象也私有化

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

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


}

 

 

 

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

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;
}

posted @ 2016-03-28 18:07  弟弟哥哥  阅读(105)  评论(0编辑  收藏  举报