面對物件3-回顧方法的呼叫

是小小番茄呀發表於2020-11-20

方法的呼叫

  • 靜態方法

    package com.oop.demo01;
    
    public class Demo02 {
        //靜態方法 static
        public static void main(String[] args) {
            //Student.say();靜態呼叫
            
            //例項化這個類 new,非靜態呼叫
            //物件型別  物件名 = 物件值
            Student student = new Student();
            student.say();
        }
    }
    
    
    package com.oop.demo01;
    
    //學生類
    public class Student {
        //非靜態方法
        public void say(){
            System.out.println("學生說話了");
        }
    }
    
    
    package com.oop.demo01;
    
    //學生類
    public class Student {
        
        public void a(){
            b();
        }
        public void b(){
            
        }
    }
    非靜態可以直接呼叫
    
  • 非靜態方法

    package com.oop.demo01;
    
    //學生類
    public class Student {
    
        //和類一起載入的
        public static void a(){
            b();//報錯,不能直接呼叫
        }
        //類例項化之後才存在
        public void b(){
    
        }
    }
    
    
    package com.oop.demo01;
    
    //學生類
    public class Student {
        
        public void a(){
            b();//可以直接呼叫
        }
        public static void b(){
    
        }
    }
    
    
  • 形參和實參

    package com.oop.demo01;
    
    public class Demo03 {
        public static void main(String[] args) {
            Demo03 demo03 = new Demo03();
            //實際引數和形式引數的型別要對應
            int m = demo03.add(2,3);
            System.out.println(m);
        }
    
        public int add(int a, int b){
            return a+b;
        }
    }
    
    
  • 值傳遞和引用傳遞

    package com.oop.demo01;
    
    //值傳遞
    public class Demo04 {
        public static void main(String[] args) {
            int a = 1;
            System.out.println(a);
            Demo04.change(a);
            System.out.println(a);
        }
    
        //返回值為空
        public static void change(int a){
            a=10;
        }
    }
    1 1 
    
    package com.oop.demo01;
    
    //引用傳遞:物件,本質還是值傳遞
    public class Demo05 {
        public static void main(String[] args) {
           Person person = new Person();
    
           System.out.println(person.name);//null
    
            change(person);
            System.out.println(person.name);//faq
        }
        
        public static void change(Person person){
           //person是一個物件,值相--->Person person = new Person();這是一個具體的人,可以改變屬性
            person.name = "faq";
        }
    }
    
    //定義了一個Person類,有一個屬性:name
    class Person{
        String name;//null
    }
    null
    faq
    
  • this關鍵字

相關文章