14-oop方法回顧

呆头尖瓜發表於2024-06-23

方法回顧

//Demo01 類
public class Demo01 {

    //main 方法
    public static void main(String[] args) {

    }

    /*
    修飾符   返回值型別   方法名(...){
           //方法體
           return 返回值; //return表示方法結束,返回一個結果
    }
     */
    public String sayHello(){
        return "hello,world";
    }
    public int max(int a , int b){
        return a>b? a: b;//三元運算子
    }

    //IO流 讀檔案    丟擲異常
    public void readFile(String file) throws IOException {

    }
}

靜態方法與非靜態方法

//學生類
public class Student {

    //靜態方法
    /*
    類名.方法名  //使用方法
    static方法是和類一起載入的,時間片較早
     */
    public static void say1(){
        System.out.println("學生說話了");
    }

    //非靜態方法
    /*
    需要把類實列化 透過new關鍵字
    非靜態方法在類實列化之後才存在
     */
    public  void say2(){
        System.out.println("學生說話了");
    }

}

        Student.say1();//static 靜態方法的呼叫

        //實列化這個Student這個類,然後使用say2方法
        Student student = new Student();//物件型別  物件名 = 物件值;
        student.say2();//呼叫方法

值傳遞與引用傳遞

    //java是值傳遞
    public static void main(String[] args) {
        int a = 1;

        Demo04.change(a);

        System.out.println(a);//輸出a的值為1
    }

    //返回值為空
    public static void change(int a){
        a = 10;
    }
//引用傳遞: 物件,本質還是值傳遞
public class Demo05 {
    public static void main(String[] args) {
        Person person = new Person();//實列化物件
        System.out.println(person.name);//輸出null

        Demo05.change(person);
        System.out.println(person.name);//輸出秦江
    }

    public static void change(Person person){
        //person是一個物件:指向--->Person person = new Person();這是一個具體的人,可以改變屬性
        person.name = "秦江";
    }

}
//一個類只能有一個public class 但是可以有多個class
//定義了一個person類,有一個屬性:name
class Person{
    String name;//預設null
}