這篇建議java開發都看看,對Java方法及加深理解的很深,值得一看!

方法和加深

  • 方法的定義

    • 修飾符
    • 返回類型
    • break:跳出switch,結束循環 和 return 的區別
    • 方法名:注意規範 見名知意
    • 參數列表(參數類型,參數名)…
    • 異常拋出
    // Demo01  類
    public class Demo01 {
    
        // main 方法
        public static void main(String[] args) {
    
        }
    
        /*
        修飾符 返回值類型 方法名(……){
            //方法體
            return 返回值;
        }
        */
        // return 結束方法,返回一個結果!
        public String sayHello(){
            return "hello,world";
        }
        public void print(){
            return;
        }
        public int max(int a,int b){
            return a>b ? a : b; // 三元運算符
        }
     }
    
    
  • 方法的調用

    • 靜態方法
    • 非靜態方法
    • 形參和實參
    • 值傳遞和引用傳遞
    • this 關鍵字
    package com.opp.demo01
    public class Demo2 {
    
        public static void main(String[] args){
            // 靜態方法
        Student.say();
    
        // 非靜態方法
        // 實例化這個類 new
        // 對象類型 對象名 = 對象值;
        Student student = new Student();
        student.say();
        }
    
        // 和類一起加載的
        public static void a(){
            b();//報錯
        }
        // 類實例化 之後才存在
        public void b(){
    
        }
    }
    
    //==================================
    package com.oop.demo01;
    // 學生類
    public class Student{
    
        // 靜態方法
        public static void say(){
            System.out.println("學生說話了");
        }
    
        // 非靜態方法
        public void say2(){
             System.out.println("學生說話了");
        }
    }
    
    
    //形參和實參
    public static boid main(String[] args){
        // 實際參數和實際參數的類型要對應
        int add = Demo03.add(1,2);
        System.out.println(add);
    }
    public static int add(int a,int b){
        return a+b;
    }
    
    
    // 值傳遞
    public class Demo04{
        public static void main(String[] args){
            int a = 1;
            System.out.println(a);// 1
    
            Demo04.change(a);
            System.out.println(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 = "裏";
        }
    }
    
    // 定義了一個Person類,有一個屬性:name
    class Person{
        String name;
    }
    
    

類與對象的關係

  • 類是一種抽象的數據類型,它是對某一類事物整體描述/定義,但是並不能代表某一個具體的事物。

    • 動物、植物、手機、電腦……
    • Person類、Pet類、Car類等,這些類都是用來描述/定義某已類具體的事物應該具備的特點和行爲
  • 對象是抽象概念的具體實例

    • 張三就是人的一個具體實例,張三家裏的旺財就是狗的一個具體實例。
    • 能夠體現出特點,展現出功能的是具體的實例,而不是一個抽象的概念。

創建與初始化對象

  • 使用new關鍵字創建對象

  • 使用new關鍵字創建的時候,除了分配內存空間之外,還會給 創建好的對象 進行默認的初始化以及 對類中構造器的調用。

  • 類中的構造器也成爲構造方法,是在進行創建對象的時候必須要調用的。並且構造器有以下兩個特點:

    • 1、必須和類的名字相同
    • 2、必須沒有返回值類型,也不能寫void
  • 構造器必須要掌握

  • 代碼實例(類與對象的創建):

public static void main(String[] args) {
    // 類:抽象的,實例化
    // 類實例化後會返回一個自己的對象!
    // student 對象就是一個Student 類的具體實例!

    Student xiaoming = new Student();
    Student xh = new Student();

    xiaoming.name = "小明";
    xiaoming.age = 3;

    System.out.println(xiaoming.name);
    System.out.println(xiaoming.age);

    xh.name = "小紅";
    xh.age = 3;

    System.out.println(xh.name);
    System.out.println(xh.age);
}

// 學生類
public class Student{
    // 屬性:字段
    String name;// null
    int age;// 0

    // 方法
    public void study(){
        System.out.println(this.name+"在學習");
    }
}

  • 代碼實例(構造器詳解):
public static void main(String[] args) {
    //new 實例化了一個對象
    Person person = new Person();

    System.out.println(person.name); // LiBo
}

// java ---> class
public class Person {
    // 一個類即使什麼都不寫,它也會存在一個方法
    // 顯示定義構造器

    String name;

    // 實例化初始值
    // 1、使用new關鍵字,本質實戰調用構造器
    public Person() {
        this.name = "LiBo"
    }

    // 有參構造:一旦定義了有參構造,無餐就必須顯示定義
    public Person(String name){
        this.name = name;
    }

    //alt + insert 快捷創建構造器
}

  • 總結
  • 構造器:1、和類名相同 2、沒有返回值
  • 作用:
  • 1、new 本質在調用構造方法
  • 2、初始化對象的值
  • 注意點:
  • 1、定義有參構造之後,如果想使用無參構造,顯示的定義一個無參構造

簡單小結類與對象

  1. 類與對象
    • 類是一個模板:抽象,對象是一個具體的實列
  2. 方法
    • 定義、調用!
  3. 對應的引用
    • 引用類型、基本類型(8)
    • 對象是通過引用來操作的:棧 ----> 堆
  4. 屬性:字段Field 成員變量
    • 默認初始化:
      • 數字:0 0.0
      • char:u0000
      • boolean:false
      • 引用:null
    • 修飾符 屬性類型 屬性名 = 屬性值;
  5. 對象的創建和使用
    • 必須使用new 關鍵字創建對象,構造器 Person muzi = new Person();
    • 對象的屬性 muzi.name
    • 對象的方法 muzi.sleep();
    • 靜態的屬性 屬性
    • 動態的行爲 方法

最後

最後提供免費的Java架構學習資料,學習技術內容包含有:Spring,Dubbo,MyBatis, RPC, 源碼分析,高併發、高性能、分佈式,性能優化,微服務 高級架構開發等等。關注我的公衆號前程有光即可獲取!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章