JAVA学习总结8

来源:互联网 发布:什么手机支持4g网络 编辑:程序博客网 时间:2024/06/04 17:58
1.toString 
2.equals   继承自object根类,String类重写了 .equals 的方法,所以String比较的是值。

package OO0913rewrite;

import OO0912.Students;

public class Re_equals {

     public static void main(String[] args) {
           // TODO 自动生成的方法存根
           Students s1 = new Students("xiong",20,"man");
           Students s2 = new Students("xiong",20,"man");

           System.out.println(s1 == s2);//输出false
           System.out.println(s1.equals(s2));//输出false,如果重写了,表示只对对象的某个属性进行比较的话,就另当别论。

           String s = new String("ddd");
           String s3 = new String("ddd");

           System.out.println(s.equals(s3));//输出true,string重写了equals方法
     }

}
然后重写Students的方法
package OO0912;

public class Students {
     public String name;
     public int age;
     public String sex;

public Students (String name,int age , String sex){
     this.name = name ;
     this.age = age ;
     this.sex =sex;
}
     @Override//重写了Students的equals方法,然后调用
     public boolean equals(Object obj){
           Students s = (Students) obj;
           return this.age == s.age&&this.name == s.name;
     }
}

继承的原理
  • 子类创建前,会先产生父类对象。然后在父类对象基础之上,扩展子类特有的属性和方法。所以子类对象中包含完整的父类对象,就可以重用父类中定义的方法和属性。

  • 子类对象创建之前,需要通过super()调用父类构造方法,产生父类对象。如果子类构造方法中没有书写super(),这时,虚拟机会自动调用super()。如果父类中没有无参构造方法,子类必须通过super(参数)来显示调用。或者重载无参构造方法。

package OO0913rewrite;

public class A {
     public A (){

           System.out.println("A构造");  
           aset();
     }
     public void aset(){
           System.out.println("Ade");//子类在通过父类构造方法的时候,父类构造如果有一个重载方法,这个方法会被子类调用并显示。
     }

     public static void main(String[] args) {
           // TODO 自动生成的方法存根

     }

}
class B extends A{
     public B(){
           System.out.println("B构造");//父类构造方法不会被重写,所以先继承super的无参构造方法,然后再使用自己的构造方法
     }
     public void aset(){
           System.out.println("Bde");
     }
}


  •  有参构造方法
public class Product {//先定义父类的属性,然后用this.属性来定义构造方法
public String producter;
public int price;
public Product(String pro, int pri){
this.producter =pro;
this.price =pri;
}
}

final关键字
  • 可以修饰类,这个类会变成太监类,只有父类,没有子类;
  • 修饰方法,子类就不能重写这个方法;
  • 修饰变量,变量地址(就是内容)固定下来,但最终指向的值可以被改变。

0 0