java面向对象-使用this语句解决构造器重载相互调用问题
2018-03-09 16:34
531 查看
20180307 java面向对象-使用this语句解决构造器重载相互调用问题
class User
{
private String name = NULL;
private int age;
User()//默认构造器,什么都不做
{
}
User(String name)//创建对象,初始化name
{
this.name = name;
}
User(String name,int age)//创建对象,初始化name和age
{
this.name = name;//this表示当前创建的对象
this.age = age;
}
public void show()
{
System.out.println(name + " "+ age);
}
}
class ThisDemo{
public static void main(String[] args)
{
User u1 = new User("张三",16);//调用有参数的构造器
u1.show();//此处输出: 张三 16
}
};
上面的三个构造函数有代码重复的问题。
可修改成如下形式:
class User
{
private String name = NULL;
private int age;
User()//默认构造器,什么都不做
{
}
User(String name)//创建对象,初始化name
{
this.name = name;
}
User(String name,int age)//创建对象,初始化name和age
{
this(name);
//this.name = name;//this表示当前创建的对象
this.age = age;
}
public void show()
{
System.out.println(name + " "+ age);
}
}
另外这种在构造器中调用另外一个构造器时,this(name)必须作为构造器中的第一句话。
且构造器中只能调用一个重载的构造器。
一般在构造器互相调用时,都是少参数构造器调用多参数的构造器。
class User
{
private String name = NULL;
private int age;
User()//默认构造器,什么都不做
{
}
User(String name)//创建对象,初始化name
{
this.name = name;
}
User(String name,int age)//创建对象,初始化name和age
{
this.name = name;//this表示当前创建的对象
this.age = age;
}
public void show()
{
System.out.println(name + " "+ age);
}
}
class ThisDemo{
public static void main(String[] args)
{
User u1 = new User("张三",16);//调用有参数的构造器
u1.show();//此处输出: 张三 16
}
};
上面的三个构造函数有代码重复的问题。
可修改成如下形式:
class User
{
private String name = NULL;
private int age;
User()//默认构造器,什么都不做
{
}
|
User(String name)//创建对象,初始化name
{
this.name = name;
}
User(String name,int age)//创建对象,初始化name和age
{
this(name);
//this.name = name;//this表示当前创建的对象
this.age = age;
}
public void show()
{
System.out.println(name + " "+ age);
}
}
另外这种在构造器中调用另外一个构造器时,this(name)必须作为构造器中的第一句话。
且构造器中只能调用一个重载的构造器。
一般在构造器互相调用时,都是少参数构造器调用多参数的构造器。
相关文章推荐
- jmeter 使用beanshell 调用 java 代码解决请求签名相关问题
- 使用Tomcat实现Java连接池(解决main中不能够调用问题)
- Java中Process和Runtime()使用,以及调用cmd命令阻塞在process.waitfor( )的问题解决
- 使用this调用另一个重载的构造器
- 构造器的重载和使用this()调用重载的构造器
- 使用 Hibernate 在 JPA 中 调用 generateSchema 会出现执行两次 SQL 语句问题的解决方法
- java 构造方法的相互调用(在一个构造器中,通过this调用另一个构造器)
- 关于构造函数的重载 用this语句的调用问题
- C#调用exe解决PDF转图片问题(使用PDFBox方案,java语言编译jar包实现)
- 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为(转)
- 使用Java HttpComponent/HttpClinet 调用 WebAPI问题的解决
- 8、java高级面向对象-重载、构造器重载、初始化块、this、super、对象构造和初始化分析、覆盖、toString
- JAVA+AXIS客户端调用Asp.net Web Service过程中遇到的问题及解决方法
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- HPUX环境,在WebLogic服务器中使用java调用C动态连接库异常问题总结
- 使用网上流传的一个数据库连接池在Proxy.newProxyInstance处引起 java.lang.ClassCastException 问题的解决方法
- 使用asx3m与xstream配合解决flex与java利用httpservice传递xml数据问题
- Java重载Constructor的相互引用(keyword:this)
- 使用Hibernate轻松解决java中date与datetime类型不兼容的问题
- 解决Java读取properties文件的中文问题的新办法(不使用native2ascii.exe及其他工具)