標籤:java class
一、什麼是類和對象
* 類是模子,確定對象將會擁有的特徵(屬性)和方法
* 類的特點:
* 類是對象的類型
* 具有相同屬性和方法的一組對象的集合
* 對象的屬性
* 屬性-對象具有的各種特徵
* 每個對象的每個屬性都有用的特定值
* 對象的方法
* 方法-對象執行的操作(能幹什麼)
* 類和對象的關係
* 類是抽象的概念,僅僅是模板
* 對象是一個你能夠看得到,摸得著的具體實體
二、 如何定義Java的類
* 1、類的重要性:所有Java程式都已類Class為組織單元
* 2、什麼是類
* 類是模子,確定對象將會擁有的特徵(屬性)和方法
* 3、類的組成:屬性和方法
* 4、定義一個類的步驟
* a、定義類名 public class 類名{
* b、編寫類的屬性 //定義屬性部分
* 屬性1的類型
* c、編寫類的方法 //定義方法部分
* 方法1
*/
//1.定義一個類public class ClassAndObject {//2.屬性(成員方法)有什麼float screen;float cpu;float mem;//3.方法 幹什麼void call(){System.out.println("Telphone有打電話的功能!");}void sendMessage(){System.out.println("screen:"+screen+" cpu:"+cpu+" mem:"+mem+" Telphpne有發簡訊的功能!");}/** * Java對象 * 使用對象的步驟 * 1、建立對象: * 類名 對象名 = new 類名(); * ClassAndObjec phone = new ClassAndObject(); * 2、適用對象 * 引用對象的屬性:對象名.屬性 * phone.screen = 5;//給screen屬性賦值5 */public static void main(String args[]){//ClassAndObject phone = new ClassAndObject();phone.call();phone.sendMessage();//1.給執行個體變數賦值phone.screen = 5.0f;phone.cpu = 1.4f;phone.mem = 2.0f;//2.調用對象的方法phone.sendMessage();}}
三、成員變數和局部變數
*
* 1、成員變數
* 在類中定義,用來描述對象將要有什麼
* 2、局部變數
* 在類的方法中定義,在方法中臨時儲存資料
* 局部變數:定義在方法內部->只能在當前方法使用
* 成員變數:本類方法,其他類的方法->使用
* 區別:
* 1)、範圍不同
* 局部變數的範圍僅限於定義它的方法
* 成員變數的範圍在整個類內部都是可見的。
* 2)、初始值不同
* java會給成員變數一個初始值
* 不會給局部變數初始值
* 3)、在同一個方法中,不允許有同名局部變數
* 在不同的方法中,可以有同名局部變數
* 4)、兩類變數同名時,局部變數具有更高的優先順序(就近原則)
int var;//成員變數void Test(){int localVar = 10;//局部變數System.out.println("var:"+var);System.out.println("localVar"+localVar);}void Test1(){//System.out.println("localVar"+localVar);}public static void main(String args[]){Variable var = new Variable();var.Test();}
四、構造方法
1.使用new+構造方法 建立一個新的對象
2.構造方法是定義在Java類中的一個用來初始化對象的方法
構造方法與類名同名,且沒有返回值
構造方法的語句格式
public 構造方法名([可以指定參數]){
//初始化代碼
沒有返回值類型 方法名與類名相同
}
//main:public static void main(String args[]){//通過無參的構造方法可以建立對象ConstructionMethod phone = new ConstructionMethod();//通過有參的構造方法也可以建立對象,並給對象中的執行個體變數賦初值ConstructionMethod phone2 = new ConstructionMethod(5.0f, 1.4f, 2.0f);}//無參構造方法:public ConstructionMethod(){System.out.println("無參構造方法被執行了");}//有參構造方法:public ConstructionMethod(float newScreen,float newCpu,float newMem){screen = newScreen;cpu = newCpu;mem = newMem;System.out.println("有參的構造方法被執行了!");}
* 5.沒有指定構造方法時,系統會自動添加無參構造方法
* 6.當有指定構造方法,無論是有參、無參的構造方法,系統都不會自動添加無參的構造方法
* 7.構造方法的重載:方法名相同,但參數不同的多個方法,調用時會自動根據不同的參數選擇相應的方法
* 8.構造方法不但可以給對象的屬性賦值,還可以保證給對象的屬性賦一個合理的值
五、靜態變數、靜態方法
public class StaticVariable {//static修飾的變數為靜態變數,所有類的對象共用hobbystatic String hobby = "原本imooc";//使用static關鍵字聲明靜態方法public static void print(){System.out.println("靜態方法");}public static void main(String[] args) {// TODO Auto-generated method stub/** * 靜態變數: * Java中被static修飾的成員成為靜態成員或類成員。它屬於整個類所有 * 靜態成員可以使用類名直接存取,也可以使用對象名進行訪問 * 使用static可以修飾變數、方法和代碼塊 *///靜態變數可以直接使用類名來訪問,無需建立類的對象System.out.println(StaticVariable.hobby);//建立類的對象StaticVariable svar = new StaticVariable();System.out.println(svar.hobby);//使用對象名的形式修改靜態變數svar.hobby = "已修改hello";//再次使用類名訪問靜態變數,值已被修改System.out.println(svar.hobby);/** * 靜態方法: * 直接使用類名調用靜態方法 * 也可以通過對象名調用,當然推薦使用類名調用的方式 *///類名調用靜態方法StaticVariable.print();//對象名調用StaticVariable svar_2 = new StaticVariable();svar_2.print();}}public class StaticSet {/** * * Java中的Static使用靜態初始化塊 * 通過初始化塊進行資料賦值 * 類的聲明中,可以包含多個初始化塊,當建立類的執行個體時,就回依次執行這些代碼塊 * 靜態初始化塊(使用static修飾初始化塊) * 靜態初始化塊只在類載入時執行,且只會執行一次,同時靜態初始化塊只能給靜態變數賦值,不能初始化普通的成員變數 * 靜態初始化塊先執行——>普通初始化塊-->構造方法 */int name1;int name2;//定義一個成員變數static int name3;public StaticSet(){//通過初始化塊為成員變數賦值,構造方法{name1 = 91;System.out.println("通過構造方法為變數name1賦值。");}}//初始化塊{name2 = 92;System.out.println("通過初始化塊為變數name2賦值");}static{//靜態初始化塊name3 = 93;System.out.println("通過靜態初始塊為靜態變數name3賦值");}public static void main(String args[]){StaticSet sSet = new StaticSet();System.out.println("name1:"+sSet.name1);System.out.println("name2:"+sSet.name2);System.out.println("name3:"+name3);StaticSet sSet2 = new StaticSet();}
【程式設計語言】Java中的類和對象learn by Imooc