标签:相同 整数 其他 函数 补充 定义 ali 基本 stat
三大特征是:封装、继承和多态。
封装:是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象。
继承:是子对象可以继承父对象的属性和行为,亦即父对象拥有的属性和行为,其子对象也就拥有了这些属性和行为。
多态性:是指允许不同类的对象对同一消息作出响应。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
封装是将对象的信息隐藏在对象内部,禁止外部程序直接访问对象内部的属性和方法。
java封装类通过三个步骤实现:
通过封装与组合来设计,具有“高内聚,低耦合”的特点。比如A类里有B类的引用,则A的实例对象就可以看成B的实例对象组合而成。
protected这个修饰符,各大参考书都会这样说:访问权限为类内,包内和子类,因此在父类中定义的方法和成员变量如果为protected修饰的,同包中任意访问,只有父类声明为public时不同包的子类也可以访问。
将当前对象克隆,保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。
主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里讲参数改变,这是就需要在类中复写clone方法。
获得当前的类对象
得到代表这个对象的字符串,一般子类都有覆盖。
对象被释放时使用,因为无法确定该方法什么时候被调用,很少使用。
判断两个引用是否指向同一个对象,其参数不能为普通数据类型
得到代表对象的一个整数,这个整数在应用程序运行时保持不变
应用于线程同步中的线程等待
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。
调用该方法后当前线程进入睡眠状态,直到以下事件发生。
其他线程调用了该对象的notify方法。
其他线程调用了该对象的notifyAll方法。
其他线程调用了interrupt中断该线程。
时间间隔到了。
此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。
用于线程同步中唤醒等待的线程
用于线程同步中唤醒等待的所有线程
方法名称相同,参数类型或个数不同,可以看成重载的方法是一个方法的两种实现,仅有返回类型不同,则编译不能通过
子类和父类的方法必须是实例方法,如果父类是static方法而子类不是实例方法,或者相反都会报错。
如果父类和子类都是static方法,那么子类重写或者覆盖父类方法。
封装使得内部实现对用户隐藏,有利于安全操作,继承可以实现对象之间的共性与特性,多态性更贴近人的使用习惯,使程序更方便。
class Dis {
int val;
public Dis(int con_val){
val = con_val;
}
public void monitor() {
System.out.println("the value of Src has changed");
}
}
class Src{
Dis dis;//组合dis
int value;
public Src(Dis con_dis) {
value = con_dis.val >= 0 ? con_dis.val : 0;//保证value非负
this.dis=con_dis;//Src对象中拥有了Dis对象的引用
}
public void valueChange() {
for (int i = 0; i < 2; i++) {
int oldvalue = value;
value += i;
if (oldvalue != value){
dis.monitor();//只改变了一次
}
}
}
}
public class test {
public static void main(String[] args) {
Dis dis=new Dis(666);
Src src=new Src(dis);//创建src对象,并将src对象作为参数传入
src.valueChange();//the value of Src has changed
}
}
以后有补充再来改~~~
标签:相同 整数 其他 函数 补充 定义 ali 基本 stat
原文地址:https://www.cnblogs.com/He-Fan/p/11575976.html