java類和對象、構造方法、靜態變量、靜態方法、靜態初始化塊


類是模子,確定對象將會擁有的特征(屬性)和行為(方法)

類的特點

類是對象的類型

具有相同屬性和方法的一組對象的集合

屬性——對象具有的各種特征,每個對象的每個屬性都擁有特定值

方法——對象執行的操作

類是抽象的概念,僅僅是模板,比如說:“手機”對象是一個看得到、摸得着的具體實體

 

如何定義java中的類

1、類的重要性:所有java程序都以類(class)為組織單元

2、什么是類?類是模子,確定對象將會擁有的特征(屬性)和行為(方法)

3、類的組成:屬性和方法

4、定義一個類的步驟

a、定義類名

b、編寫類的屬性

c、編寫類的方法

 

Java對象

1、創建對象

類名 對象名=new 類名();

Telphone phone=new Telphone();

2、使用對象

引用對象的屬性:對象名.屬性

Phone.screen=5;//screen熟悉賦值為5

引用對象的方法:對象名.方法名()

Phone.sendMessage();//調用sendMessage()方法

public class TelPhone {
    //屬性(成員變量)  有什么
    float screen;
    float cpu;
    float mem;
    //方法   干什么
    void call(){
        System.out.println("telphone有打電話的功能");
    }
    void sendMessage(){
        System.out.println("screen:"+screen+"cpu:"+cpu+"mem:"+mem+"telphone有發短信的功能");
    }
}
public class InitailTelPhone {
    public static void main(String[] args){
        //創建類的對象
        TelPhone phone=new TelPhone();
        //調用類的方法
        phone.sendMessage();
        //給實例變量賦值
        phone.screen=5.0f;
        phone.cpu=1.4f;
        phone.mem=2.0f;
        //再次調用類的方法
        phone.sendMessage();
    }
}

 

java中的成員變量和局部變量

1、成員變量

  在類中定義,用來描述對象將要有什么

本類的方法可以使用,或其它有關系的類的方法也可以使用

2、局部變量

  在類的方法中定義,在方法中臨時保存數據

只有在當前方法中才能使用

成員變量和局部變量的區別

1、作用域不同

局部變量的作用域僅限於定義它的方法內部使用

成員變量的作用域在整個類的內部都是可以使用的

2、初始值不同

Java會給成員變量一個初始值,初始值為0

局部變量沒有初始值

3、在同一個方法中,不允許有同名的局部變量

4、在不同的方法中,可以有同名的局部變量

5、兩類變量同名時,局部變量有更高的優先級

 

java中的構造方法

 

1、使用new+構造方法,可以創建一個新的對象

 

Tips:在創建對象時,new+的其實是構造方法

 

2、構造方法是定義在java類中的一個用來初始化對象的方法

 

3構造方法與類同名且沒有返回值

 

無參的構造方法

 

main:

 

  Telphone phone=new Telphone();//構造方法名稱

 

class Telphone:

 

  public Telphone(){

 

  System.out.println("無參的構造方法執行了!");

 

}

 

 

 

帶參構造方法的使用

 

main:

 

  Telphone phone=new Telphone(4.0f,2.0f,2.0f);  // 構造方法名稱,括號里為構造方法的參數

 

class Telphone:

 

  public Telphone(float newScreen,float newCpu,float newMen){

 

  screen=newScreen;

 

  cpu=newCpu;

 

  mem=newMen;

 

}

public class InitailTelPhone {
    public static void main(String[] args){
        //通過無參的構造方法創建類的對象
        TelPhone phone=new TelPhone();
        //通過有參的構造方法創建類的對象,並給對象中的實例變量賦初值
        TelPhone phone2=new TelPhone(5.0f,2.0f,3.0f);
    }
}
public class TelPhone {
    //定義成員變量
    float screen;
    float cpu;
    float mem;
    public TelPhone(){
        System.out.println("無參的構造方法執行了");
    }
    //帶參數的構造方法
    //括號里的參數和成員變量是有區別的
    public TelPhone(float newScreen,float newCpu,float newMen){
        //為成員變量賦初值
        screen=newScreen;
        cpu=newCpu;
        mem=newMen;
        System.out.println("有參的構造方法執行了");
    }
}

當沒有指定構造方法時,系統會自動添加無參的構造方法

當有指定構造方法,無論是有參、無參的構造方法,都不會自動添加無參的構造方法

構造方法的重載:方法名相同,但參數不同的多個方法,調用是會自動根據不同的參數選擇對應的方法

構造方法不但可以給對象的屬性賦值,還可以保證給對象的屬性賦一個合理的值

        //帶參數的構造方法
    //括號里的參數和成員變量是有區別的
    public TelPhone(float newScreen,float newCpu,float newMen){
        //為成員變量賦初值,並保證賦一個合理的值
        if(newScreen<3.5f){
            System.out.println("您輸入的參數有問題,自動賦值3.5");
            screen=3.5f;
        }else{
            screen=newScreen;
        }
        cpu=newCpu;
        mem=newMen;
        System.out.println("有參的構造方法執行了");
    }    

 

Static使用之靜態變量

static修飾的成員稱為靜態成員或類成員。它屬於整個類所有,而不是某個對象所有,即被類的對象所共享。靜態成員可以使用類名直接訪問,也可以使用對象名進行訪問。

使用static可以修飾 變量、方法、代碼塊。

 

public class HelloWorld{
    //定義靜態變量
    static String name="liuYun";
    int a=10;
    public static void main(String[] args){
        System.out.println(HelloWorld.name);//可以使用類名直接訪問
        System.out.println(name);//這樣居然可以直接訪問
        HelloWorld hello=new HelloWorld();
        System.out.println(hello.a);//非靜態變量用對象名訪問
    }
}

 

Static使用之靜態方法

1、靜態方法中可以直接調用同類中的靜態成員,但不能直接調用非靜態成員。如果希望在靜態方法中調用非靜態變量,可以通過創建類的對象來訪問非靜態變量

2、在普通成員方法中,則可以直接調用同類的非靜態變量和靜態變量

3、靜態方法中不能直接調用非靜態方法,需要通過對象來訪問非靜態方法

public class HelloWorld{
    //定義靜態變量
    static int score1=86;
    static int score2=92;
    //定義靜態方法sum
    public static int sum(){
        int sum;
        sum=score1+score2;
        return sum;
    }
    public static void main(String[] args){
        int sum=HelloWorld.sum();//調用靜態方法
        System.out.println("總分:"+sum);
    }
}

Static使用之靜態初始化塊

Java中可以通過初始化塊進行數據賦值

public class HelloWorld{
    String name;//定義一個成員變量
    //通過初始化塊為成員變量賦值
    {
        name="liuYun";
    }
}

如果使用 static 修飾初始化塊,就稱為靜態初始化塊。

需要特別注意:

靜態初始化塊只在類加載時執行,且只會執行一次,同時靜態初始化塊只能給靜態變量賦值,

不能初始化普通的成員變量。

public class HelloWorld{
    String name;
    String sex;
    static int age;
    //構造方法
    public HelloWorld(){
        System.out.println("通過構造方法初始化name");
        name="liuYun";
    }
    //初始化塊
    {
        System.out.println("通過初始化塊初始化sex");
        sex="男";
    }
    //靜態初始化塊
    static{
        System.out.println("通過靜態初始化塊初始化age");
        age=29;
    }
    public void show(){
        System.out.println("姓名:"+name+",性別:"+sex+",年齡:"+age);
    }
    public static void main(String[] args){
        HelloWorld hello=new HelloWorld();
        hello.show();
    }
}  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM