類和方法
Java是面向?qū)ο蟮恼Z言 一切皆對(duì)象 類 Java里面方法是不能獨(dú)立存在的,只能在類里面聲明
類方法 = 靜態(tài)方法
對(duì)象方法 = 實(shí)例方法
區(qū)別:
1.定義上:
靜態(tài)方法前面需要使用static修飾
2.意義上:
靜態(tài)方法依附于對(duì)象,比實(shí)例方法優(yōu)先被加載,當(dāng)這個(gè)類被加載到內(nèi)存中時(shí)這個(gè)方法就被加載了,而此時(shí)對(duì)象還不存在,所以只能用這個(gè)類來調(diào)用靜態(tài)方法。
對(duì)象方法依附于對(duì)象,必須創(chuàng)建這個(gè)類的一個(gè)對(duì)象,用對(duì)象來調(diào)用。
當(dāng)需要定義一個(gè)沒有參數(shù)的實(shí)例方法時(shí),需要用到:
public private protected
static
static可以修飾的內(nèi)容有:
1.變量——靜態(tài)變量
2.方法——靜態(tài)方法
3.類(內(nèi)部類)——靜態(tài)內(nèi)部類
如:
public static void test2(){
}
java參數(shù)傳遞機(jī)制
Java時(shí)按值傳遞,傳遞過去的是一份當(dāng)前變量的拷貝
當(dāng)傳遞的是對(duì)象的時(shí)候才會(huì)改變?cè)瓉淼臄?shù)值。
可變參數(shù) ... 接收的是數(shù)組
可變參數(shù)是指參數(shù)的個(gè)數(shù)不確定
String ... args 等價(jià)于 String[] args;
public void test4(String ... args){
for (int i = 0;i <args;i++){
System.out.println(args[i]);
}
}
方法重載與構(gòu)造方法
方法重載:
同一個(gè)類里面 方法名相同 參數(shù)不同
方法的重載和返回值,修飾符沒有關(guān)系
如:
public class Person {
public void drink(int a){}
public void drink(float a){}
}
這種情況下是不會(huì)出錯(cuò)的 但是如果是下面的情況就會(huì)出錯(cuò)
public class Person {
public void drink(int a){}
public int drink(float a){}
}
構(gòu)造方法:
如何去創(chuàng)建一個(gè)對(duì)象
系統(tǒng)默認(rèn)提供一個(gè)無參的構(gòu)造方法
特點(diǎn):1.方法名和類名相同 2.沒有返回值
能夠解決兩個(gè)問題:
1.讓代碼更簡(jiǎn)潔
2.在數(shù)據(jù)使用時(shí)能夠保證有數(shù)據(jù)
public class Car {
public int engine;
public int seat;
public int wheelCount;
//無參的構(gòu)造方法,這是系統(tǒng)默認(rèn)的
public Car(){
}
public Car(int count,int cEngine,int cSeat){
wheelCount = count;
seat = cSeat;
engine = cEngine;
}
}
此時(shí)如果在包里面的另一個(gè)類中:
Car c1 = new Car();
c1.wheelCount = 4;
c1.engine = 3;
c1.seat = 4;
Car c2 = new Car(count:4,cEngine:3,cSeat:4);
此時(shí)輸出的結(jié)果相同,顯然c2更加簡(jiǎn)潔??!