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。都是同一批生产的。==来比较的话是两个引用都指向这辆车。

最新文章

  1. CentOs7 +Jexus 5.8.2部署Asp.Net Core WebApi 1.0生产环境
  2. 【算法】PHP实现冒泡排序和快速排序--防遗忘
  3. iptables日志探秘
  4. Button模板,样式
  5. xmpp整理笔记:聊天信息的发送与显示
  6. Paratroopers
  7. 创建第一个MVC
  8. 数往知来 ASP.NET 模拟服务器:服务端_静态页面_动态页面的响应<十七>
  9. 【转】Android应用程序的数据存放目录解说
  10. Ajax跨域请求数据实例(JSOPN方式)
  11. 【BZOJ3524/2223】[Poi2014]Couriers 主席树
  12. 即时作图新工具—ProcessOn【推荐】…
  13. 4-sum问题
  14. 【Dubbo 源码解析】06_Dubbo 服务调用
  15. Redis入门到高可用(二十一)——缓存的使用和设计
  16. Java SSM 框架相关基础面试题
  17. [DLX精确覆盖] hdu 1603 A Puzzling Problem
  18. python- Socket & Mysql 重要知识点
  19. Java调用Lua脚本(热载实现)
  20. 找不到 EntityType “ ” 的映射和元数据信息。

热门文章

  1. legend3---1、meedu安装
  2. php红包功能
  3. python 虚拟机是单线程;当线程执行I/O密集型操作是,ce
  4. 深入RESTful无状态原则
  5. 交换机vlan配置
  6. spring-第十三篇之零配置支持
  7. 使用requests_html抓取数据
  8. MapReduce工作流程及Shuffle原理概述
  9. dataTable获取所有数据
  10. this的指向问题 call apply bind 中的this