|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天是第13天,希望能坚持下去(同开始背cet)
①在构造函数参数与对象数据成员同名时,可用this加以区别
<div>
public class CashCard {
private String number;
private int balance;
private int bonus;</div><div>
public CashCard(String number,int balance,int bonus){
this.number=number;//参数number指定给这个对象的number
this.balance=balance;
this.bonus=bonus;
}
//...
}
</div>
②在Java中,this()代表了调用另一个构造函数,至于调用了哪一个构造函数,则视调用this()时给的自变量类型与个数而定。
(this()调用只能出现在构造函数的第一行
不然会报 Constructor call must be the first statement in a constructor)
<div>public class Some {
private int a = 10;
private String text = "n.a.";
public Some(int a) {
if (a > 0) {
this.a = a;
}
}
public Some(int a, String text) {
this(a);
//this(a)会调用public Some(int a)版本的构造函数,再执行if(text!=null)之后的代码程序</div><div>
if (text != null) {
this.text = text;
}
// ...
}
}
</div>
③
【报错记录】
The method main cannot be declared static; static methods can only be declared in a static or top level typepackage tankwar;
class Other {
{
System.out.println("对象初始区块");
}
Other() {
System.out.println("Other()构造函数");
}
Other(int o) {
this();
System.out.println("Other(int o)构造函数");
}
}
public class Apple {
public static void main(String[] args) {
new Other(1);
}
}
结果:
对象初始区块
Other()构造函数
Other(int o)构造函数
④【报错记录】
Syntax error on token "Invalid Character", ;
expected
invalid:adj.无效的; 不能成立的; 有病的; 病人用的;
vt.使伤残; 使退役; 失去健康;
n.病人,病号; 残废者; 伤病军人;
class Person {
private String name ;
private int age;
private String city;
public Person(){
System.out.println("无参构造方法");
}
// 带参数的构造方法
public Person(String name, int age, String city) {
this();
this.name = name;
this.age = age;
this.city = city;
}
public void setCity(String city) {
this.city = city;
}
public String getCity(String city) {
return city;
}
public void setName(String name) {
this.name = name;
}
public String getName(String name) {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public String toString(){
System.out.println(getAge());
return "名字:"+this.name+",今年:"+this.age+"岁,家住:"+this.city ;
}
}
public class ConstructorDemo {
public static void main(String[] args) {
Person p = new Person("张三", 18, "武汉");
/*
* 在堆中开辟空间,给属性分配默认的初始值 假设属性一开始赋值了,就进行赋值工作 调用构造方法来对属性进行初始化
* p.setName("张三"); p.setAge(10);
*/
System.out.println(p.toString());
/*
* Object类中的toString()方法源码:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
假如类复写了Object类(此类为Java根基类)中的toString()方法 例如:
public String toString(){
return "Hello"; //这里才是要返回的值 如果没复写 则调用Object类中的toString()方法(打印类的全限命名+内存地址) }
*
*/
}
}
|
评分
-
查看全部评分
|