類和對象、方法(1)


類和對象


什么是類和對象?

類:類就是我們經常看見的class關鍵字,類有一點抽象,因為它具體的內容是需要通過對象來實現的。

對象:對象是類的一個實例。

例子:

等於 藍圖 對象 等於 藍圖的最終產物

比如說:手機

  1. 首先肯定現有藍圖(類)

  2. 然后才有藍圖的最終產物(對象)

這也代表二者缺一不可

 

類(class)

  • 類的創建

    class 類名稱{

    成員變量

    成員方法

    }

     

  • 類的內部結構:

    1. 成員變量

    2. 成員方法

成員變量

成員變量其實就是普通的變量,但是我們不會立刻取賦值

格式:變量類型 變量名稱;

成員方法(后面深入講解)

成員方法是一個封裝起來的功能。

目前格式:

public void 方法名稱(){

//具體的代碼...

}

 

對象

  • 對象的結構:

    1. 導包:關鍵字 import 包名稱.類名稱;

      什么是導包?

      導包就是把你要用的類的路徑拿過來

      如果類和對象在同一個包下,則可以省略導包

    2. 創建

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

       

    3. 使用

      • 成員變量

        對象名.成員變量名;

        賦值:

        對象名.成員變量名 = 數據值;

         

      • 成員方法

        對象名.成員方法名();

 

代碼演示

 //1.導包:不需要,因為在同一個包下
 public class main {
 
     public static void main(String[] args) {
 //       2.創建:類名稱 對象名 = new 類名稱();
         Person person = new Person();
 
         /*
         使用:
         - 成員變量
           對象名.成員變量名;
         賦值:
            對象名.成員變量名 = 數據值;
 
         - 成員方法
             對象名.成員方法名();
          */
         String name = person.name;
         System.out.println(name);
         //或者
         System.out.println(person.name);
 
         /*
         賦值:
            對象名.成員變量名 = 數據值;
          */
         person.name = "茶仙°";
         System.out.println(person.name);
         person.age = 1;
 
         /*
         - 成員方法
             對象名.成員方法名();
          */
         person.show();
    }
 }
 
 class Person{
 
     /*
     成員變量
     格式:變量類型 變量名稱;
      */
     String name;
     int age;
 
     /*
     成員方法
     格式:
     public void 方法名稱(){
 
    //具體的代碼...
 
     }
      */
     public void show(){
         System.out.println("我叫:" + name + ",我" + age + "歲了");
    }
 }

 

注意事項

  1. 每new一次對象就代表創建了一次對象,每一個對象都是獨立的。

    例子:

     //1.導包:不需要,因為在同一個包下
     public class main{
     
         public static void main(String[] args){
             //2.創建對象
             Person person = new Person();//創建了一個對象
             Person person2 = new Person();//創建了兩個對象
             Person person3 = new Person();//創建了三個對象
             Person person4 = new Person();//創建了四個對象
             Person person5 = new Person();//創建了五個對象
        }
     }
     
     class Person{
     
         //創建成員變量
         String name;
         int age;
     
         //創建成員方法
         public void show(){
             System.out.println("我叫"+name+",我"+age+"歲了");
        }
     }
  2. 成員變量也可以是對象,或者數組

     class Animal{
         //成員變量
         String name;
         int age;
         String color;
     }
     
     class dog{
         //成員變量
         String name;
         int age;
         //成員類
         Animal ani;
         //成員數組
         int[] arr;
     }

成員方法(方法)


什么是成員方法?

成員方法也可以叫做方法,方法是一個封裝的功能,我們可以通過調用來使用。

  • 方法的好處:當我們需要重復寫一些功能的時候,這時候把功能寫到方法里,之后只要調用就行,不需要重復的寫功能

  • 成員方法完整定義格式

    修飾符(public) 返回值類型 方法名稱(參數類型 參數名稱){

    //具體的功能

    return 返回值;

    }

     

  • 解析

    1. 修飾符:權限的大小(后面細講)

    2. 返回值類型:代表方法有沒有返回值,如果方法沒有:void,並且return和返回值不需要寫

    3. 方法名稱:取一個名字給方法

    4. 參數類型和參數名稱:方法內部功能需要的材料,我們也把:參數類型和參數名稱稱為“ 參數列表 ”

    5. return:

      作用一:結束方法

      作用二: 把返回值還給調用處

      【調用處】:調用方法的代碼,並且調用方法的代碼需要創建一個變量來接收返回值

    6. 返回值:具體功能的最終結果。

     

  • 創建方法的三要素

    1. 返回值類型

    2. 方法名稱

    3. 參數列表

     

  • 解析代碼

     class Person{
         
        //成員變量
         String name;
         int age;
         
        //成員方法
         public void show(){
        System.out.println("我叫"+name+",我"+age+"歲了");
      }
     }
    • 三要素:

      1. 返回值類型:void(代表沒有)

      2. 方法名稱:show

      3. 參數列表:沒有

     

  • 方法比較

    1. 有返回值類型和沒有返回值類型

       public class main {
       
           public static void main(String[] args) {
               main main = new main();
               //調用方法的時候需要【接收】
               //有返回值類型,接收:int sum = main.sum();
               int sum = main.sum();
               
               //沒有返回值類型,傳入參數:int sum = main.sum(1,1);
               main.sum2(1,2);
          }
       
           /*
           創建方法的三要素:
           返回值類型:int
           方法名稱:sum
           參數列表:int a, int b
            */
           //有返回值類型
           public int sum(){
               int result = 1 + 1;
               return result;
          }
           
           /*
           創建方法的三要素:
           返回值類型:void
           方法名稱:sum2
           參數列表:沒有
            */
           //沒有返回值類型
           public void sum2(){
               int result = 2 + 2;
               System.out.println(result);
          }
       }
    2. 有參數和沒參數

       public class main {
       
           public static void main(String[] args) {
               main main = new main();
               //調用方法的時候需要【接收】和【傳入參數】
               //有參數
               int resultOfSum = main.sum(1,1);
               System.out.println("結果" + myNameIs);
               /*
               接收:int resultOfSum = main.sum();
               傳入參數:int resultOfSum = main.sum(1,1);
                */
       
               //沒參數
               System.out.println("結果:"+main.sum2());
       
          }
       
           /*
           創建方法的三要素:
           返回值類型:void
           方法名稱:sum
           參數列表:int a, int b
            */
           //有參數
           public void sum(int a, int b){
               int result = a + b;
               return result;
          }
       
           /*
           創建方法的三要素:
           返回值類型:void
           方法名稱:sum2
           參數列表:沒有
            */
           //沒參數
           public void sum2(){
               int result = 2,2;
               return result;
          }
       }
    3. 有參數 沒有返回值類型 和 沒參數 有返回值類型

       public class main {
       
           public static void main(String[] args) {
               main main = new main();
               //調用方法的時候需要【傳入參數】
               //有參數 沒有返回值類型
               main.sum("茶仙°");
               
        //沒參數 有返回值類型
               String name = main.sum2();
               System.out.println("我叫"+ name);
       
          }
       
           /*
           創建方法的三要素:
           返回值類型:void
           方法名稱:sum
           參數列表:String name
            */
           public void sum(String name){
               System.out.println("我叫"+name);
          }
       
           /*
           創建方法的三要素:
           返回值類型:String
           方法名稱:sum2
           參數列表:沒有
            */
           public String sum2(){
               String myName = "茶仙°2";
               return myName;
          }
       }

     

  • 方法注意事項

    1. 返回值要和返回值類型保持一致!

    2. 方法的返回值類型和參數也是可以有“類” 和 “數組”

    3. 方法不能嵌套

    4. 如果有多個參數需要用 , 來隔開。

 

遞歸方法

  • 什么是遞歸方法?

    遞歸方法就是一種方法循環,但是這種方法循環內部是需要有參數、判斷和返回值

     

  • 遞歸方法代碼

     public class main{
         
         public static void main(String[] args){
             main main = new main();
             int resultOfFactorial = main.factorial(5);
        }
     }
     
     class test{
         //遞歸方法
         public int factorial(int n){//有參數
             //判斷
             if(n == 1){
                 return 1
            }else{
                 return factorial(n - 1);
            }
        }
     }

     

 

方法重載

  • 什么是方法重載?

    方法重載是一個屬於方法到規則,規則:同名不同參數

  • 代碼演示

     public class main{
         
         public static void main(String[] args){
             
        }
         
         public void sum(int a, int b){
             int result = a+b;
             System.out.println(result);
        }
         
         public void sum(int a, int b, int c){
             int result = a+b+c;
             System.out.println(result);
        }
     }

     

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


  1. 定義的位置不一樣【重點】 局部變量:在方法的內部 成員變量:在方法的外部,直接寫在類當中

     

  2. 作用范圍不一樣【重點】 局部變量:只有方法當中才可以使用,出了方法就不能再用 成員變量:整個類全都可以通用

     

  3. 默認值不一樣【重點】 局部變量:沒有默認值,如果要想使用,必須手動進行賦值 成員變量:如果沒有賦值,會有默認值,規則和數組一樣

作用域


什么是作用域?

作用域是代碼執行的范圍

它的范圍就是 {} 內部

  • 代碼演示

     public class main{
         
         public static void main(String[] args){
             
        }
     }
     
     class test{
         
         //作用域:{}
        {
             int num = 1;
             public void showNum(){
                 System.out.println(num);
            }
        }
             //System.out.println(num);
         
     }
    1. 注意,出了作用域就不能再使用作用域內部的成員變量和成員方法。


免責聲明!

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



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