zoukankan      html  css  js  c++  java
  • Java的Object几个重写的方法

    1:toString();

    只是简单的列出对象的状态(也就是重要的实例变量的当前值)。

    package jicheng;
    public
    class Animal { public static void main(String[] args) { Animal a=new Animal(); System.out.println(a); } }

    输出结果:

    重写

    package jicheng;
    
    public class Animal {
        private String name;
        private  int age;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
        public Animal(){}
        public Animal(String name,int age){
            this.name=name;
            this.age=age;
            System.out.println("name="+name+","+"age="+age);
        }
        @Override
        public String toString() {
            return "Animal [name=" + name + ", age=" + age + "]";
        }
    }
    package jicheng;
    
    public class Animatetable {
        public static void main(String[] args) {
            Animal a =new Animal("lu",13);
            
            System.out.println(a);
        }
        
    }

    小知识:this 关键字

      1):表示当前的类的成员变量,也叫 类的属性

    package jicheng;
    
    public class A{ 
        private String name;//定义一个成员变量name
    
        public String getName() {//获得姓名
            return name;
        }
    
        public void setName(String name) {//设置姓名,定义一个形参name
            name = name;//将局部变量的值传递给成员变量
        }
        public static void main(String[] args) {
            A a=new A();
            a.setName("lu");
            System.out.println(a.getName());
        }
    }

    由运行结果可以看出,通过name=name并没有正确的将内容赋给属性,为什么呢?因为此时操作的name实际上是方法中的,跟类中的属性完全不沾边。

    另外,这个程序代码中,有一个成员变量name,同时在方法中有个形式参数,参数名也是name。然后在方法中将形式参数name的值传递给成员变量name。虽然我们可以看明白这个代码的含义,但是作
    为Java编译器它是怎么判断使用哪个变量的呢?到底是将形式参数name的值传递给成员变量name,还是反过来讲成员变量name的值传递给形式参数name呢?

    此时this这个关键字就起到作用了,这种情
    况下使用this这个关键字代表的就是类中的成员变量,又叫做类的属性。所以此时,为了明确的表示出哪一个是类中的属性,就要加上“this.属性名称”的操作。

     2):引用构造函数。

    package jicheng;

    public class A{
        public static String name;//定义一个成员变量name
        
        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
        public A(){  //定义一个无参的构造函数
            this(name);//调用有参的构造函数
            System.out.println("testA");
            
        }
        public A(String name){//定义一个有参的构造函数
            System.out.println("TestA");
        }
    }

    public class Test {
        public static void main(String[] args) {
            A  a=new A();
        }
    }

    输出

    创建了一个A对象。 然后a引用A()对象。调用 public A()构造函数。但是无参构造函数中有this("TestB");表示调用有参的构造函数。所以也打印出来了。

    3):this表示当前对象。

    package jicheng;
    
    public class A{ 
        public String getInfo(){
            System.out.println("Student类--->"+this);
            return null;
        }
        public static void main(String[] args) {
            A a=new A();
            a.getInfo();
            System.out.println(a.toString());
            System.out.println(a);
            }
    }

     return this  返回当前对象。

    public A getInfo(){
            System.out.println("Student类--->"+this);
            return this;
        }

     二):equals()

      比较两个引用是否完全相同时。用==来比较。 要知道对象本身是否相同时。用equals()方法。

      假如两辆车A和B。都是同一批生产的。==来比较的话是两个引用都指向这辆车。

  • 相关阅读:
    Ceph的参数mon_osd_down_out_subtree_limit细解
    java:警告:[unchecked] 对作为普通类型 java.util.HashMap 的成员的put(K,V) 的调用未经检查
    Java 原始类型JComboBox的成员JComboBox(E())的调用 未经过检查
    Android draw Rect 坐标图示
    不用快捷键就能使用Eclipse的自动完成功能
    Java 窗体居中 通用代码
    Java文件复制删除操作合集
    Java Toolkit类用法
    DEVEXPRESS 破解方法
    如何使用Java执行cmd命令
  • 原文地址:https://www.cnblogs.com/bulrush/p/7419609.html
Copyright © 2011-2022 走看看