構(gòu)造方法
public double width;// 寬
public double high;// 高
public int weight;// 重量
public String color;// 顏色
// 構(gòu)造方法填硕,用于在內(nèi)存中創(chuàng)建對象
public Phone() {
System.out.println("我被構(gòu)造了");
}
// 構(gòu)造方法
public Phone(double width,double high,int weight,String color) {
this.width = width;
this.high = high;
this.weight = weight;
this.color = color;
}
作用:幫助開辟內(nèi)存空間擂错,創(chuàng)建對象
特征:
1.沒有返回值
2.名字要求和類名完全一致,區(qū)分大小寫
3.分為有參構(gòu)造方法和無參構(gòu)造方法
3.1 無參構(gòu)造方法會自動生成
3.2 有參構(gòu)造方法需要手動編寫粱锐,參數(shù)個數(shù)可以自定義
方法的重載
上面的三個構(gòu)造方法==》方法的重載
1.在同一個類中
-
方法的名字相同
-
參數(shù)不同
3.1 參數(shù)的個數(shù)不同 3.2 參數(shù)的類型不同 3.3 參數(shù)的類型順序不同
toString
public String toString() {
return "{" + this.width + this.high + this.weight + this.color + "}";
}
作用:把對象按照人能夠理解的方式重寫
this
表示當(dāng)前對象(誰調(diào)用當(dāng)前方法疙挺,this指代的就是誰)
public Phone(double width,double high,int weight,String color) {
this.width = width;
this.high = high;
this.weight = weight;
this.color = color;
}
Object類
是所有類的父類,但凡有其他的類被創(chuàng)建怜浅,Object一定被創(chuàng)建
Object類中有一些固有的方法衔统,即便沒寫,其他所有的類中都有這些方法
equals()
原生的:比較的是兩個對象的地址是不是相同海雪,一般場景不能滿足程序使用锦爵,推薦用戶復(fù)寫
public boolean equals(Object obj) {
return (this == obj);
}
本例中以Phone為案例:
public boolean equals(Object object) {
if ( this == object ) {
return true;
}
if ( object instanceof Phone ) {
Phone temp = (Phone) object;
if ( temp.width == this.width && temp.high == ((Phone) object).high &&
this.weight == ((Phone) object).weight && this.color == temp.color) {
return true;
}else {
return false;
}
}
return false;
}
toString() 原生的 :返回的是對象的內(nèi)存地址
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
**static ** 靜態(tài)的
可以修飾成員屬性,還可以修飾方法
被修飾的成員奥裸,類一旦創(chuàng)建险掀,便分配了內(nèi)存空間,可以通過類名.方法()的方式調(diào)用
不需要對象即可使用湾宙,通過對象也可以調(diào)用樟氢,但是不推薦
沒有被修飾的成員:必須等待對象被創(chuàng)建冈绊,才擁有獨立的內(nèi)存空間,只能通過對象名.方法()調(diào)用
final 最終的
被final修飾的成員埠啃,值一旦被寫定死宣,不能再被輕易修改
類成員的執(zhí)行順序
public class Demo01 {
// 2 普通的屬性或者代碼塊其次執(zhí)行,從上往下執(zhí)行
int size = 1;
{
size = 10;
}
// 1 被static修飾最先執(zhí)行碴开,多個被static修飾的從上往下執(zhí)行
static {
count = 3;
}
static int count = 30;
// 3 最后執(zhí)行的構(gòu)造方法
public Demo01(){
System.out.println(size);
System.out.println(count);
}
}
// 測試類
public class testDemo01 {
public static void main(String[] args) {
new Demo01();
}
}
/*打印結(jié)果
10
30
*/
內(nèi)部類
和普通的成員一樣毅该,擁有對應(yīng)的使用方式
public class Demo02 {
String name;
int age;
public void fun() {
System.out.println("普通的成員方法");
}
// 內(nèi)部類
class Inner {
int sex;
double high;
public void fun01() {
System.out.println("內(nèi)部類中的普通方法");
}
}
}
權(quán)限管理
public default protected private
修飾符 | 同一個類 | 同一個包 | 子類 | 所有類 |
---|---|---|---|---|
private 私有的 | √ | |||
default 默認(rèn)的 | √ | √ | ||
protected 受保護的 | √ | √ | √ | |
private 公共的 | √ | √ | √ | √ |