java learn2

this指针:这一次调用函数的对象,即当前对象。

成员函数的调用一般不需要用this指针;但调用成员变量且存在参数重名冲突时需要:

void setPrice(int price)
{
    this.price=price; //需要this。这里price是成员变量
}

void setAmount(int amt)
{
    amount=amt; //可有可无。这里amount时成员变量
}

成员变量初始化为0,或者通过构造函数初始化成员变量;会出现重载:构造函数的重载。

package hello;
public class Hello {	
	int price,amount;
	Hello()
	{
		price=10;
		amount=100;
	}
	Hello(int price,int amount)
	{
		this.price=price;
		this.amount=amount;
	}
	void get()
	{
		System.out.println("price:"+price);
		System.out.println("amount:"+amount);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
                //调用第一个构造函数:
		Hello hi=new Hello();        
                //调用第二个构造函数:
		Hello hello=new Hello(20,200);
		hi.get();
		hello.get();
	}
}

ans:
price:10
amount:100
price:20
amount:200

this调用构造函数,但是不能相互递归调用:即两个重载的构造函数相互调用

参考:https://blog.csdn.net/u014042146/article/details/48374087            https://blog.csdn.net/baidu_30360575/article/details/50548695

package hello;
public class Hello {	
	int price,amount;
	Hello()
	{
        //**************here**************
		this(30,300); 
        //**************here**************
	}
	Hello(int price,int amount)
	{
		this.price=price;
		this.amount=amount;
	}
	void get()
	{
		System.out.println("price:"+price);
		System.out.println("amount:"+amount);
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
                 //调用第一个构造函数:
		Hello hi=new Hello();  
                 //调用第二个构造函数:     
		Hello hello=new Hello(20,200);
		hi.get();
		hello.get();
	}
}
ans:
price:30
amount:300
price:20
amount:200
0

java learn1

数组和String都是对象的管理者,而不是所有者。

java的引用传递:尊重原创 1、判断字符串内容是否相等:a.equals(b); 2、判断字符串是否相同(即是否管理着同一个字符串): a == b; 如果二者内容相同,但是管理的不是同一个字符串,则a != b

包裹类型

0