标签:
对象,类,方法,实例变量
构造函数 public classname(...)
析构函数 protected finalize()
封装:自己设为私有,编写公有方法使用。
继承:不会继承private
多态
抽象
覆盖:子类重写父类的方法,要求方法名和参数类型完全一样(参数不能是子类),返回值和异常比父类小或者相同(即为父类的子类),访问修饰符比父类大或者相同的若是构造函数则先用super()第一句,其他的super.method()
使用父类的protected方法
重载:方法名相同,但参数不同的多个同名函数
super/this
有抽象方法就是抽象类。或直接abstract定义抽象类
抽象方法后为; public abstract void func(..);
子类要么是抽象的要么重写抽象方法
接口中所有属性是Public static final,方法都是public. 访问修饰符则必须是public
接口也可扩展另一个接口,相似于类的继承,关键字extends
匿名类:在多线程中学到,必须继承一个接口或实现一个父类
匿名对象:使用的时候直接new O()当作参数或者使用其方法。
Thread tt=new Thread(new Runnable(){ public void run(){System.out.println("IN THREAD");} });
内部类
匿名内部类是一种特殊的局部内部类,它是通过匿名类实现接口。
IA被定义为接口。
IA I=new IA(){};
静态方法/块中不能引用非静态变量/方法!
这里要从static关键字说起
static修饰的静态变量/方法,是独立于对象之外的,他只在类第一次加载时进行初始化。
static具有独立的内存空间且只分配一次。
非静态变量为什么不能再静态方法中引用呢?
通俗一点说非静态变量在对象没有创立时,是没有初始化的(内存空间没有),所以你在静态方法中引用,静态方法在初始化的时候,并不能知道非静态变量在哪
rem结果的符号与被除数相同;mod结果的符号与除数相同
C/JAVA 和第一个数符号一致。Python和第二个符号一致
JAVA中继承覆盖
构造函数,子类无构造默认调用父类无参构造。
方法覆盖,必须同参同返作用域不能扩大 ,super.protected使用父类的..方法
成员覆盖,父类用父类,子类用子类。
若实际调用的是父类的成员,就使用了父类的该成员m,若实际调用的是子类的成员,就使用子类的成员m,记住一句,每个类使用成员都相当于在前面加了 一个this指针。
http://blog.csdn.net/stonecao/article/details/6317353
静态方法只能访问静态成员,实例方法可以访问静态和实例成员
JAVA-OOP
标签:
原文地址:http://blog.csdn.net/gg_gogoing/article/details/42320161