zoukankan      html  css  js  c++  java
  • java10-2 toString()方法


    public String toString():返回该对象的字符串表示。

      Integer类下的一个静态方法:
        public static String toHexString(int i):把一个整数转成一个十六进制表示的字符串
          这个信息是没有任何意义的。所以,建议所有子类都重写该方法。
          怎么重写呢?
          把该类的所有成员变量值组成返回即可。
            重写的最终版方案: 就是自动生成toString()方法。从source里面直接生成

        注意:
          直接输出一个对象的名称,其实就是调用该对象的toString()方法。
           

    同个包中创建2个类:

    第一个:

     1 public class Student {
     2 private String name;
     3 private int age;
     4 
     5 public Student() {
     6 super();
     7 }
     8 
     9 public Student(String name, int age) {
    10 super();
    11 this.name = name;
    12 this.age = age;
    13 }
    14 
    15 public String getName() {
    16 return name;
    17 }
    18 
    19 public void setName(String name) {
    20 this.name = name;
    21 }
    22 
    23 public int getAge() {
    24 return age;
    25 }
    26 
    27 public void setAge(int age) {
    28 this.age = age;
    29 }
    30 
    31 @Override
    32 public String toString() {
    33 return "Student [name=" + name + ", age=" + age + "]";
    34 }
    35 // 重写to.String方法,快捷方式:右键 → Source → 点击有to String()
    36 //调用出自己想要得到的字符串信息.到时候直接用System.out.println(s.toString());
    37 // @Override
    38 // public String toString() {
    39 // return super.toString();
    40 // return "hello";
    41 // return "姓名:" + name + ",年龄:" + age;
    42 // }
    43 
    44 
    45 }

    第二个:

     1 public class StudentDemo {
     2 public static void main(String[] args) {
     3 Student s = new Student();
     4 System.out.println(s.hashCode());
     5 System.out.println(s.getClass().getName());
     6 System.out.println("--------------------");
     7 System.out.println(s.toString());// cn.itcast_02.Student@42552c
     8 System.out.println("--------------------");
     9 // toString()方法的值等价于它
    10 // getClass().getName() + '@' + Integer.toHexString(hashCode())
    11 // this.getClass().getName()+'@'+Integer.toHexString(this.hashCode())
    12 
    13 // cn.itcast_02.Student@42552c
    14 // cn.itcast_02.Student@42552c
    15 
    16 System.out.println(s.getClass().getName() + '@'
    17 + Integer.toHexString(s.hashCode()));
    18 
    19 System.out.println(s.toString());//Student [name=null, age=0] 重写了
    20 
    21 // 直接输出对象的名称
    22 System.out.println(s);//Student [name=null, age=0] 重写了
    23 
    24 }
    25 }
    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    JAVA内存模型(Java Memory Model ,JMM)
    多线程(一)多线程实现、线程状态、线程调度、线程同步、线程数据传递
    Java中如何实现代理机制(JDK动态代理和cglib动态代理)
    HashMap与HashTable
    SSH远程会话管理工具
    nginx 无法启动:bind() to 0.0.0.0:443 failed
    nginx 提示the "ssl" directive is deprecated, use the "listen ... ssl" directive instead
    php Allowed memory size of 134217728 bytes exhausted
    nginx 部署php项目 404
    RabbitMQ+PHP教程
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5870121.html
Copyright © 2011-2022 走看看