方法和加深
-
方法的定義
- 修飾符
- 返回類型
- 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、定義有參構造之後,如果想使用無參構造,顯示的定義一個無參構造
簡單小結類與對象
- 類與對象
- 類是一個模板:抽象,對象是一個具體的實列
- 方法
- 定義、調用!
- 對應的引用
- 引用類型、基本類型(8)
- 對象是通過引用來操作的:棧 ----> 堆
- 屬性:字段Field 成員變量
- 默認初始化:
- 數字:0 0.0
- char:u0000
- boolean:false
- 引用:null
- 修飾符 屬性類型 屬性名 = 屬性值;
- 默認初始化:
- 對象的創建和使用
- 必須使用new 關鍵字創建對象,構造器 Person muzi = new Person();
- 對象的屬性 muzi.name
- 對象的方法 muzi.sleep();
- 類
- 靜態的屬性 屬性
- 動態的行爲 方法
最後
最後提供免費的Java架構學習資料,學習技術內容包含有:Spring,Dubbo,MyBatis, RPC, 源碼分析,高併發、高性能、分佈式,性能優化,微服務 高級架構開發等等。關注我的公衆號前程有光即可獲取!