java中的tostring_java 中重写toString()方法

toString()方法 一般出现在System.out.println(类名.toString());

toString()是一种自我描述方法 本身返回的是 getClass().getName() + "@" +Integer.toHexString(hashCode());

也就是 类名 + @ +hashCode的值

重写toString() 只会对类生效,并不能字符串生效; 例如

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 public classpratise {2 String num="aaaa";3 publicString toString(){4 returnnum;5 }6 public static voidmain(String[] args){7 String s1="111";8 System.out.println(s1.toString());9 //输出111 而并非aaaa;

10 }11 }

View Code

重写toString()对类生效

package com.stu;

//用toString 重写一个类

public class Car {

//成员变量

private String carNo;

private String carName;

private String color;

private double price;

//有参构造函数

Car(String carNo,String carName,String color,double price){

this.carNo=carNo;

this.carName=carName;

this.color=color;

this.price=price;

}

//get set方法

public String getCarNo(){

return carNo;

}

public void setCarNo(String carNo){

this.carNo=carNo;

}

public String getCarName() {

return carName;

}

public void setCarName(String carName) {

this.carName = carName;

}

public String getColor() {

return color;

}

public void setColor(String color) {

this.color = color;

}

public double getPrice() {

return price;

}

public void setPrice(double price) {

this.price = price;

}

//重写toString();

public String toString(){

return "这个汽车名叫 "+carName+",型号是 "+carNo+",汽车颜色 "+color+",价格 "+price;

}

public static void main(String[] args){

//创建一个Car的对象

Car myCar=new Car("苏A 4995","长安汽车","灰蓝色",70000.00); //类名开头字母大写

System.out.println(myCar.toString());

}

}

输出结果:

1256a2c0a5ba4a574af02926e84320dd.png

假如不对toString()进行重写则 输出结果:

com.stu.Car@2542880d  ==> 类名 + “@” +hashCode值

2.为什么要重写toString()方法

在Object类里面定义toString()方法的时候返回的对象的哈希code码,这个hashcode码不能简单明了的表示出对象的属性。所以要重写toString()方法。

当需要将一个对象输出到显示器时,通常要调用他的toString()方法,将对象的内容转换为字符串.java中的所有类默认都有一个toString()方法。

默认情况下 System.out.println(对象名)或者System.out.println(对象名.toString())输出的是此对象的类名和此对象对应内存的首地址如果想自定义输出信息必须重写toString()方法。

注意事项:

1.必须被声明为public

2.返回类型为String

3.方法的名称必须为toString,且无参数

4.方法体中不要使用输出方法System.out.println()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/326606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

art-template入门(一)之介绍

转载自 art-template介绍 介绍 art-template 是一个简约、超快的模板引擎。 它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行性能,并且同时支持 NodeJS 和浏览器。在线速度测试。 特性 拥有接近 JavaScript 渲染极…

走过20年……你出现在哪里?

Visual Studio Live 倒计时ing 20岁的 Visual Studio 陪伴了一代代程序猿的成长,从青葱岁月一直走过而立之年,从一个小后生变成了 wuli欧巴……由单身狗也成了孩子他爸…… 如今二十载已过,你还记得当年大明湖畔的 Visual Studio 么&#xff…

2016蓝桥杯省赛---java---B---7(剪邮票)

题目描述 剪邮票 思路分析 全排列深度优先搜索连通检查 代码实现 package com.atguigu.TEST;class Main{static int a[] { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1 };static int ans;static boolean vis[]new boolean[12];static void dfs(int g[][], int i, int j) {g[i][…

css解决li边框重合问题

我直接写了个案例&#xff0c;先看下效果图&#xff1a; 下面是html代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>机构动态</title><style type"text/css">*{margin:0px;p…

art-template 入门(二)之安装

转载自 art-template 安装 安装 Npm npm install art-template --save在浏览器中实时编译 下载&#xff1a;lib/template-web.js&#xff08;gzip: 6kb&#xff09; 兼容 IE8&#xff08;IE8 需要补丁才能运行。示例&#xff09; 差异 因为浏览器不支持文件系统&#x…

java文件输入与输出_java文件输入和输出

1.输入读取文件:import java.io.*;import java.math.*;import java.util.*;public class Main{public static void main(String args[]) throws Exception{Scanner cinnew Scanner((new FileInputStream("D:\\in.txt")));int a,b;while(cin.hasNext()){acin.nextInt(…

学习ASP.NET Core,你必须知道“中间件”是什么?中间件如何注册?请求处理管道是如何通过中间件构建的?

ASP.NET Core 的请求处理管道由一个Server和一组有序排列的中间件构成&#xff0c;前者仅仅完成基本的请求监听、接收和响应的工作&#xff0c;请求接收之后和响应之前的所有工作都交给注册的中间件来完成。ASP.NET Core的中间件通过一个类型Func<RequestDelegate, RequestD…

2016蓝桥杯省赛---java---B---8(四平方和)

题目描述 四平方和 代码实现 package com.atguigu.TEST;import java.util.Scanner;class Main{public static void main(String[] args) {Scanner sc new Scanner(System.in);int N0;if (sc.hasNext()){Nsc.nextInt();}for (int a 0; a < 2400; a) {for (int b a; b…

springmvc报错 nested exception is org.mybatis.spring.MyBatisSystemException:

今天在做ssm整合的时候发现了一个错误&#xff0c;头疼了半天没解决&#xff0c;错误如下&#xff1a; 三月 10, 2018 6:43:37 下午 org.apache.catalina.core.AprLifecycleListener init 警告: The APR based Apache Tomcat Native library failed to load. The error repor…

java 银行帐号_Java程序(银行账户管理)

package 账户管理;import java.text.SimpleDateFormat;import java.util.Date;public class Zhanghu {private String _account;private String _name;private String _ID;private Date _accounTimet ;private double _balance;public Zhanghu(String account , String name , …

art-template入门(三)之语法

转载自 art-template语法 语法 art-template 支持标准语法与原始语法。标准语法可以让模板易读写&#xff0c;而原始语法拥有强大的逻辑表达能力。 标准语法支持基本模板语法以及基本 JavaScript 表达式&#xff1b;原始语法支持任意 JavaScript 语句&#xff0c;这和 EJS …

在物理内存中观察CLR托管内存及GC行为

虽然看了一些书&#xff0c;还网络上的一些博文&#xff0c;不过对CLR托管内存细节依然比较模糊。而且因为工作原因总会有很多质疑&#xff0c;想要亲眼看到内存里二进制数据的变化。 所以借助winhex直接查看内存以证实书上的描述或更进一步揣摩CLR托管内存的运作方式&#xff…

2017蓝桥杯省赛---java---B---1(购物单)

题目描述 &#xff08;购物单&#xff09; 思路分析 cmd 打开电脑上的计算器算(算出来的结果是00结尾&#xff0c;作为检测) 答案 5200

art-template入门(四)之调试

转载自 art-template调试 template.defaults.debug art-template 内建调试器&#xff0c;能够捕获到语法与运行错误&#xff0c;并且支持自定义的语法。在 NodeJS 中调试模式会根据环境变量自动开启&#xff1a;process.env.NODE_ENV ! production 设置 template.defaults.…

java 取随机正整数_Java获取随机数

Java 获取随机数import java.util.Random;public class randomDemo {public static void main(String[]args){randomDemo rnew randomDemo();System.out.println(r.randomCode());}public static String randomCode() {StringBuilder str new StringBuilder("");Ran…

DataProtection设置问题引起不同ASP.NET Core站点无法共享用户验证Cookie

这是这两天ASP.NET Core迁移中遇到的一个问题。2个ASP.NET Core站点&#xff08;对应于2个不同的ASP.NET Core Web应用程序&#xff09;&#xff0c;2个站点都可以登录&#xff0c;但在其中任1个站点登录后&#xff0c;在当前站点处于登录状态&#xff0c;访问另外1个站点却处于…

mybatis+spring报错PropertyAccessException 1

男生关注会更帅&#xff0c;女生关注会更美&#xff01;mybatisspring报错PropertyAccessException 1: org.springframework.beans.MethodInvocationExceptionorg.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘dataSource’ defined…

java synchronized 使用_Java中synchronized的使用实例

Java中synchronized的使用实例synchronized关键字&#xff0c;代表这个方法加锁&#xff0c;相当于不管哪一个线程(例如线程A)&#xff0c;运行到这个方法时&#xff0c;都要检查有没有其它线程B(或者C、D等)正在用这个方法&#xff0c;若有则要等正在使用synchronized方法的线…

字符串暴力匹配算法+思路分析

思路分析 代码实现 package com.atguigu.kmp;/*** 创建人 wdl* 创建时间 2021/4/4* 描述*/ public class ViolenceMatch {public static void main(String[] args) {//测试暴力匹配算法String str1 "硅硅谷 尚硅谷你尚硅 尚硅谷你尚硅谷你尚硅你好";String str2&quo…

art-template入门(五)之模板变量

转载自 art-template模板变量 模板变量 template.defaults.imports 模板通过 $imports 可以访问到模板外部的全局变量与导入的变量。 导入变量 template.defaults.imports.log console.log;<% $imports.log(hello world) %>内置变量清单 $data 传入模板的数据$imp…