房上的貓:類的無參方法
一.類的無參方法 1.概述: (1)類是由一組具有相同屬性和共同行為的實體抽象而來的 (2)物件執行的操作是通過編寫類的方法實現的 (3)類的每一個方法都實現了一個功能 2.定義類的方法 編寫方法: (1)定義方法名和返回值型別 (2)在{}中編寫方法的主體部分 注意: (1)方法體放在一對大括號中(方法體就是一段程式程式碼,完成一定的工作) (2)方法名主要在呼叫這個方法時使用(在java中一般採用駱駝式命名法) (3)方法執行後可能會返回一個結果,該結果的型別稱為返回值型別(使用return語句返回值) 語法:
return 表示式;
注: (1)return語句是跳轉語句 (2)如果方法沒有返回值,則返回值型別為void (3)在編寫程式時一定要注意方法宣告中返回值的型別和方法體中真正返回值的型別是否匹配(如果不匹配,編譯器會報錯) return跳轉語句的作用: (1)跳出方法 (2)給出結果 注:定義類的方法必須包括以下三個部分: (1)方法的名稱 (2)方法返回值的型別 (3)方法的主體 3.方法呼叫 語法:
物件名.方法名();
注: (1)java中的類是程式的基本單位 (2)每個物件需要完成特定應用程式功能 (3)當需要某一物件執行一項特定操作時,通過呼叫該物件的方法來實現 (4)在類中,類的不同成員方法之間也可以進行互相呼叫 方法呼叫形式: (1)同一個類中的方法,直接使用方法名呼叫該方法 (2)不同類的方法,首先建立物件,在使用"物件名.方法名()"來呼叫 4.變數的作用域 成員變數和區域性變數 java中以類來組織程式,類中可以定義變數和方法,在類的方法中,同樣也可以定義變數 定義變數: (1)成員變數: 可以直接使用本類定義成員變數,如果其他類的方法要訪問它,必須首先建立該類的物件,然後才能通過操作符"."來引用 (2)區域性變數: 它的作用域僅僅在定義該變數的方法內,因此只有在這個方法中能夠使用 5.成員變數與區域性變數的區別:
public class Aini {
String house;
int cats;
//成員變數,java自動給賦初始值
public void show() {
int a = 0;
String a1 = null;
//區域性變數,要自行宣告並賦值
}
}
(1)作用域不同: 區域性變數的作用域僅限於定義它的方法,在該方法外無法訪問 成員變數的作用域在整個類都是可見的,所有成員方法都可以使用,如果訪問許可權允許,還可以在類外部使用成員變數
(2)初始值不同: 對於成員變數,如果在類定義中沒有給它賦初始值,java會給它一個預設值,基本資料型別的值為0,引用型別的值為null (初始值的賦值,詳細見我發的上一篇文章“類和物件>萬物皆物件”) 但是java不會給區域性變數賦初始值,因此區域性變數必須要定義賦值後再使用 注:在同一個方法中,不允許有同名的區域性變數: 在不同方法中,可以有同名的區域性變數 區域性變數可以和成員變數同名,並且在使用時區域性變數具有更高的優先順序 6.面向物件程式設計: 背景: 面向物件程式設計(Object Oriented Programming ,OOP)是一種計算機程式設計架構,是20世紀90年代才流行起來的一種軟體程式設計思想.OOP的一條基本原則就是計算機是由單個能夠起到子程式作用的單元或物件組合而成的,採用這種框架程式設計主要起到重用性,靈活性和擴充套件性的強大作用 語法:
main(){
//顯示總成績
呼叫方法;
//顯示平均分
呼叫方法;
}
好處: (1)類的方法可以實現某個特定的功能,其他的類不需要知道它是如何實現的 (2)知道實現此功能的類和它的方法名,就可以直接呼叫,而不用重複編碼
案例:
public class Objects_009 {
String pp;
String cpu;
String zb;
String xsq;
String yp;
String nc;
//宣告成員變數
public String show() {
System.out.println("品牌:" + pp + "nCPU:" + cpu + "n主機板:" + zb
+ "n顯示器:" + xsq + "n硬碟:" + yp + "n記憶體:" + nc);
//建立方法,寫出輸出格式
return "程式結束!";
//String型別方法,對應String型別寫出返回值,(在程式最後輸出)
}
public static void main(String[] args) {//在main方法中呼叫輸出
//建立掃描器
Scanner bdqn = new Scanner(System.in);
//使用new關鍵字建立物件並呼叫類
Objects_009 a = new Objects_009();
//為成員變數賦值
System.out.print("請輸入品牌:");
a.pp = bdqn.next();
System.out.print("請輸入CPU:");
a.cpu = bdqn.next();
System.out.print("請輸入主機板:");
a.zb = bdqn.next();
System.out.print("請輸入顯示器:");
a.xsq = bdqn.next();
System.out.print("請輸入硬碟:");
a.yp = bdqn.next();
System.out.print("請輸入記憶體:");
a.nc = bdqn.next();
//接收show方法的返回值,並輸出方法中內容(輸出結果最後一項為返回值的值)
String a1 = a.show();
System.out.println(a1);
}
}