java-public Tom(String s) { this(); System.out.println("I am " + s); 的this为什么不是作用,谢谢

问题描述

public Tom(String s) {
this();
System.out.println("I am " + s);
的this为什么不是作用,谢谢

class Jerry {
public Jerry() {
System.out.println("Jerry");
}
public void hello() {
System.out.println("Hello in Jerry");
}
}
class Tom extends Jerry {
public Tom() {
System.out.println("Tom");
}
public Tom(String s) {
this();
System.out.println("I am " + s);
}
public void hello() {
System.out.println("Hello in Tom");
}
}
public class Test3 extends Tom {
public Test3() {
this("test");
System.out.println("Test");
}
public Test3(String s) {
super(s);
System.out.println("Hello " + s);
}
public static void main(String args[]) {
Test3 t = new Test3();
t.hello();
}
}
答案
Jerry
Tom
I am test
Hello test
Test
Hello in Tom

解决方案

this()就是调用自身的无参构造函数。打印的tom就是这个无参构造函数的内容的。

解决方案二:

转载:http://blog.sina.com.cn/s/blog_49faf32901008pap.html?作者:Joe Armstrong原文:What’s all this fuss about Erlang译者:朱照远(Joshua Zhu) 许式伟(XuShiWei)What’s all this fuss about Erlang?没人可以预言未来,但我却打算做一些有......
答案就在这里:What’s all this fuss about Erlang

解决方案三:

已经调用过了这个this()了

时间: 2024-11-01 02:18:54

java-public Tom(String s) { this(); System.out.println("I am " + s); 的this为什么不是作用,谢谢的相关文章

快捷键-关于java快速生成main方法和system.out.println的问题

问题描述 关于java快速生成main方法和system.out.println的问题 java快速生成main方法和system.out.println如何按"alt+/"就生成而不需要按回车?我之前在别的电脑上试过快速生成main方法和""system.out.println""直接按""alt+/""就可以快速生成,但在自己电脑上按""alt+/""会先出现一个

java io学习(十六) System.out.println("hello world")原理

我们初学java的第一个程序是"hello world" 1 public class HelloWorld { 2     public static void main(String[] args) { 3         System.out.println("hello world"); 4     } 5 } 上面程序到底是怎么在屏幕上输出"hello world"的呢?这就是本来要讲解的内容,即System.out.println(&

java字符串连接String、StringBuffer和StringBuilder

Java字符串连接再开发中随时用的,方法很多: 先看下下边的代码: package com.meiyabaike.classx; public class ClassxMathCalculate { public static void main(String[] args) { int i1 = 10; int i2 = 20; System.out.println("resultx1 :"+i1+i2); //Error: the operator - is undefined f

Java 中的 String 为什么是不可变的?

什么是不可变对象? 众所周知, 在Java中, String类是不可变的.那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的.不能改变状态的意思是,不能改变对象内的成员变量,包括 基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变. 区分对象和对象的引用 对于Java初学者, 对于String是不可变对象总是存有疑惑.看下面代码: String s = "ABCabc";

string-关于Java中 源代码 String 类中的 equals

问题描述 关于Java中 源代码 String 类中的 equals public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String) anObject; int n = value.length; if (n == anotherString.value.length)

Java编程中将String类型转为Date类型实例

最近在开发Json数据反序列化为Java对象的时候发现spring mvc 和 Jackson 对Date类型对支持不是特别好,虽然在Java对象序列化为Json数据的过程中提供了便利的注解,但是反序列化却没有,于是就引出了下面的问题,我需要手工的将字符串转换为Date类型的数据,java.text.SimpleDateFormat 为我们提供了这种转换的基础设施.如下列出了的格式化模式的简单定义,如果 'M' 大于等于3位, 月份会显示为字母,否则是数字. 更详细的定义请参考 java.tex

java io系列17之 System.out.println("hello world")原理

我们初学java的第一个程序是"hello world" 1 public class HelloWorld { 2 public static void main(String[] args) { 3 System.out.println("hello world"); 4 } 5 } 上面程序到底是怎么在屏幕上输出"hello world"的呢?这就是本来要讲解的内容,即System.out.println("hello world

Java编译器对于String常量表达式的优化

首先把问题摆出来,先看这个代码 String a = "ab"; String b = "a" + "b"; System.out.println((a == b)); 打印结果会是什么?类似这样的问题,有人考过我,我也拿来考过别人(蛮好玩的,大家也可以拿来问人玩),一般答案会是以下几种: 1.true "a" + "b" 的结果就是"ab",这样a,b都是"ab"了

java中System.out.println( );这个方法是

问题描述 java中System.out.println( );这个方法是 java中System.out.println( );这个方法是System类里的out对象的println方法的意思,即类.对象.方法 解决方案 对,就是这个意思.... 解决方案二: 假设有一个实例Object o则当System.out.println(o);时,它其实是自动调用o.toString()方法,然后输出该方法返回的string字符串.当System.out.println(o.toString());