java簡單類+this關鍵字用法
阿新 • • 發佈:2019-01-12
今天開始學習java,第一次自學其他語言,真是有些小興奮呢,這些與C++不同的特性或是不熟悉的特性都希望能將其記錄下來,日後便於查閱複習,順便見證下自己的成長軌跡,嘿嘿嘿。。。
今日問題
搞定
- java簡單類是啥,咋用
- this關鍵字三類用法
半懂
- this在過載的構造方法中呼叫其它構造方法為啥要置頂??
懵逼
- String類兩種構造方法的區別,字串構造,普通類構造??
- 字串內容一旦聲明後不可改??
java簡單類 is what??
java簡單類是一種重要的開發模型,也可以稱為一種編寫規範,有四條原則
- 1,類中所有屬性必須用private修飾(封裝體現)
- 2,類中所有屬性必須有setter,getter方法(進一步支援封裝)
- 3,類中若有過載構造方法,需按照引數有序排列(升/降)(好看);一定要包括一個無參構造方法(避免後續出錯)
- 4,不允許在類的方法中使用列印語句(System.out.println),若想列印,必須將結果返回呼叫處
this關鍵字 is what???
this關鍵字可將其看成一個物件,所以物件能幹的事它基本都能幹,不過他是特指本類,他有三種用法
- 1,表示本類屬性:this.屬性
- 2,表示本類方法,方法分為普通方法:this.方法名()
- 3,表示當前物件
tips表示本類屬性、方法或物件可在類中任意位置使用,但是表示構造方法則有限制
- 1,僅在構造方法中呼叫
- 2,必須置於第一句(例項化物件呼叫優先順序:構造方法>普通方法>其他語句)
- 3,this可用來提高複用性
一個員工例子說明java簡單類原則,this關鍵字使用屬性及方法
public class Employee {
//原則1:所以屬性加上private
private String id;
private String name;
private String salary;
private String department;
//原則2:若有多個過載建構函式,按照引數個數升序或降序排放;
// 必須要有無參建構函式
public Employee() {}
public Employee(String id) {
this.id = id;//this使用屬性
}
public Employee(String id,String name) {
this(id);//this呼叫構造方法,必須置於第一行
this.name = name;//this使用屬性
}
public Employee(String id,String name,String salary,String department) {
this(id,name);//this呼叫構造方法,必須置於第一行
this.setSalary(salary);//this呼叫普通方法,等價於this.salary = salary;
this.department = department;//this使用屬性
}
//原則3:每個屬性均有setter,getter方法
public void setId(String id) {
this.id = id;
}
public String getId() {
return this.id;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setSalary(String salary) {
this.salary = salary;
}
public String getSalary() {
return this.salary;
}
public void setDepartment(String department) {
this.department= department;
}
public String getDepartment() {
// System.out.println("不可以直接在方法中輸出,必須將值返回給呼叫處");原則四
return this.department;
}
public static void main(String[] args) {
Employee e = new Employee("100","阿俊","10000","技術部");
System.out.println(e.getId());
System.out.println(e.getName());
System.out.println(e.getSalary());
System.out.println(e.getDepartment());//呼叫處輸出
e.setId("666");
System.out.println(e.getId());
}
}
輸出結果
1
2
3
100
阿俊
10000
技術部
666
一個簡單例子演示this關鍵字表示物件
class DemoA{
public void print() {
System.out.println("當前物件:"+this);
}
}
public class Demo_this {
public static void main(String[] args) {
DemoA d1 = new DemoA();//宣告並例項化物件
DemoA d2 = new DemoA();
System.out.println(d1);//輸出物件
d1.print();//呼叫函式測試輸出(違背了java類原則4,不過這裡是為了演示效果)
System.out.println("==============");
System.out.println(d2);
d2.print();
}
}
結果
[email protected]
當前物件:[email protected]
==============
[email protected]
當前物件:[email protected]