草稿三

不同包中的类如何访问

package packa

class DemoA

{

   void show(){

sop(“dsfsdfsd”);

}

}

1.要使一个包被另一个包访问 则需要被public修饰,并且被访问的成员也要public


2.proteced 你认我为父  你能拿到别人拿不到的  


子类全部继承父类 还自己扩展 所以子类比父类大


class T{

private int i=0;

     default j=0;

       proteced int k=0;

       public int m=0;

}

class TT{

public void m(){

     T t=new T();

      sop(t.j);

}

}


default 同一个包中可以访问

proteced 内部, 同一个包中 ,子类, 都能访问 ,但是不同的包不是子类不能访问


private 继承了也不能访问  




子类继承父类的构造函数 用super()来访问


重写不能使权限变小了 比如父类是public 那么重写必须是public  总之不能使权限变小了


override


权限大小比较 public>protected>default>private




super  指向父类对象


继承中的构造方法 super必须写在第一句话


Object类

所有的类都继承了object

public class Person(){}自己编写的类也继承了object

finalize()

getClass()拿到编译好的class文件

hashcode()

toString()返回代表对象的字符串,描述当前对象的信息,一般建议重写这个方法

如 sop(“info”+Person) 类和字符串相连接 类自动调用toString方法

public class TestToString{

    public static void main (String[] args){

  Dog d=new Dog();

      sop(d);//d会调用toString方法

}


}

hashcode 指的是对象的地址值

hashcode table 每一个对象都有独一无二的哈希编码



class Dog{

}


equlas在父类的作用是 如果是一个对象则返回false

equlas 比较对象里面的内容

public boolean equlas(Object obj){

if(obj==null)

return false;else {

if(obj instanceof Cat){

Cat c=(Cat)obj;

if(c.color==this.color)

         return true;

}

}

 return false;


}


String s1=new String("hlleo");

String s2=new String("hlleo");


s1==s2  false

s1.equals(s2);  true


对象转型  父类的引用 也可以用子类

但不能用子类里面所有的方法 因为有的方法不是全部动物都具有的



多态=动态绑定

执行期间而不是编译期间 根据实际类型调用相应的方法


父类引用指向子类对象  父类里面被重写方法是调用子类重写的方法


1.要有继承

2.要有重写

3父类引用指向子类对象


抽象类 

1,类名必须含有abstract

2,抽象方法定义

public abstract void enjoy();

抽象类不能实例化 必须被实现后才能被new

3抽象类中可以有不抽象的方法



方法不想被重写 用final

pulic class TestFinal{

     publi static void main(String[] args){


}

}

class T{

     final int i=8;

piblic void m(fianl int j){


}//不允许j在方法中被改变

}


fianl 如果修饰类 怎不能被继承

如 string类不能被继承



接口


特殊的抽象类

接口中所有的成员变量都用 static final 写不写都一样 默认的

所有的方法不用写abstract

Singer s2=new Teacher();

只能用Singer里面的方法


1.发生方法重写的两个方法返回值、方法名、参数列表必须完全一致


为什么JAVA 接口中的方法默认都是PUBLIC的?

原文首先说,接口中的方法,无论你写不写public,都是public的。

接下来又说,当一个类实现接口的时候,从接口来的方法必须是写成public的。

然后是你罗列的这句,如果没写成public(为什么能想到不加public呢?因为接口中可以省略public),那方法为默认的包访问权限,这样就在继承的过程中降低了接口中的方法(public)的访问权限。


类与类之间的组合关系

聚集  has a 谁里面有谁  聚集分 聚合和组合

聚合 班级由一帮人组成  

组合  事物联系程度更紧密


你可能感兴趣的:(草稿三)