Java面向物件和方法
阿新 • • 發佈:2018-11-01
Java 方法
那麼什麼是方法呢?
Java方法是語句的集合,它們在一起執行一個功能。
- 方法是解決一類問題的步驟的有序組合
- 方法包含於類或物件中
- 方法在程式中被建立,在其他地方被引用
方法的優點
- 1. 使程式變得更簡短而清晰。
- 2. 有利於程式維護。
- 3. 可以提高程式開發的效率。
- 4. 提高了程式碼的重用性。
方法的命名規則
- 1. 必須以字母、'_'或'$'開頭。
- 2. 可以包括數字,但不能以它開頭。
方法的定義
一般情況下,定義一個方法包含以下語法:
方法包含一個方法頭和一個方法體。下面是一個方法的所有部分:
- 修飾符:修飾符,這是可選的,告訴編譯器如何呼叫該方法。定義了該方法的訪問型別。
- 返回值型別 :方法可能會返回值。returnValueType 是方法返回值的資料型別。有些方法執行所需的操作,但沒有返回值。在這種情況下,returnValueType 是關鍵字void。
- 方法名:
- 引數型別:引數像是一個佔位符。當方法被呼叫時,傳遞值給引數。這個值被稱為實參或變數。引數列表是指方法的引數型別、順序和引數的個數。引數是可選的,方法可以不包含任何引數。
- 方法體:方法體包含具體的語句,定義該方法的功能。
如:
public static int age ( int birthday ) { ... }引數可以有多個:
注意: 在一些其它語言中方法指過程和函式。一個返回非void型別返回值的方法稱為函式;一個返回void型別返回值的方法叫做過程。
例項
public class Test1 {//public static 修飾詞 void無返回值(返回值型別) main方法名 String[] args引數列表
public static void main(String[] args){//程式的入口
int a=45;
int b=67;
int c=83;
// int sum=a+b+c;
// System.out.println("sum="+sum);
//把能實現特定邏輯功能的稱之為方法
int sum=add(a,b,c);//通過add(a,b,c)方法算出a+b+c的和
System.out.println("sum="+sum);
}
//add(int a,int b,int)方法,方法寫在類裡面
//public static修飾詞 int返回值型別為整數 add方法名 int a,int b,int c 引數列表
public static int add(int a,int b,int c){
int sum=a+b+c;//計算a+b+c
//return的作用 1.返回資料 2.結束方法
return sum;//返回計算的a+b+c的和
}
}
方法呼叫和引數傳遞
示例
下面的例子演示瞭如何定義一個方法,以及如何呼叫它:
TestMax.java 檔案程式碼:
public class Test2 {public static void main(String[] args){//String[]引數型別 args引數名稱
go();
int age=5;
go(age);//有參處理起來更靈活
}
//方法(引數,返回值)
public static void go(){//無參,無返回值的go方法
System.out.println("走路");
}
public static void go(int age){
if(age>=3){
System.out.println("走路");
}else{
System.out.println("爬");
}
}
}
方法的過載
例項
下面的程式列印所有的命令列引數:
Test3.java 檔案程式碼:
public class Test3 {public static void main(String[] args){
//方法的過載(overload):方法名一樣引數列表不一樣
//方法(引數列表,方法名,返回值)
say();
String str="張三";
say(str);
String gender="男";
say(str,gender);
}
//是不是同一個方法要看方法名和引數列表
public static void say(){
System.out.println("說話");//方法裡面的內容叫方法體
}
public static void say(String name){//String name=str
System.out.println(name+"在說話");
}
public static void say(String name,String sex){//String name=str,String sex=gender
System.out.println(sex+name+"在說話");
}
}
Java 物件和類
Java作為一種面嚮物件語言。支援以下基本概念
本節我們重點研究物件和類的概念。
- 物件:物件是類的一個例項(物件不是找個女朋友),有狀態和行為。例如,一條狗是一個物件,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
- 類:類是一個模板,它描述一類物件的行為和狀態。
Java中的物件
現在讓我們深入瞭解什麼是物件。看看周圍真實的世界,會發現身邊有很多物件,車,狗,人等等。所有這些物件都有自己的狀態和行為。
拿一條狗來舉例,它的狀態有:名字、品種、顏色,行為有:叫、搖尾巴和跑。
對比現實物件和軟體物件,它們之間十分相似。
軟體物件也有狀態和行為。軟體物件的狀態就是屬性,行為通過方法體現。
在軟體開發中,方法操作物件內部狀態的改變,物件的相互呼叫也是通過方法來完成。
Java中的類
類可以看成是建立Java物件的模板。
通過下面一個簡單的類來理解下Java中類的定義:
public class Dog { String breed ; int age ; String color ; void barking ( ) { } void hungry ( ) { } void sleeping ( ) { } }一個類可以包含以下型別變數:
- 區域性變數:在方法、構造方法或者語句塊中定義的變數被稱為區域性變數。變數宣告和初始化都是在方法中,方法結束後,變數就會自動銷燬。
- 成員變數:成員變數是定義在類中,方法體之外的變數。這種變數在建立物件的時候例項化。成員變數可以被類中方法、構造方法和特定類的語句塊訪問。
- 類變數:類變數也宣告在類中,方法體之外,但必須宣告為static型別。
一個類可以擁有多個方法,在上面的例子中:barking()、hungry()和sleeping()都是Dog類的方法。
建立物件
物件是根據類建立的。在Java中,使用關鍵字new來建立一個新的物件。建立物件需要以下三步:
- 宣告:宣告一個物件,包括物件名稱和物件型別。
- 例項化:使用關鍵字new來建立一個物件。
- 初始化:使用new建立物件時,會呼叫構造方法初始化物件。
下面是一個建立物件的例子:
public class Test5 {public static void main(String[] args) {
//Dog引用型別(變數型別) dog引用型別名稱(變數名稱) =賦值符號 new Dog()建立一個物件
Dog dog=new Dog();//使用new關鍵字,建立一個物件(東西)
//通過物件來呼叫方法
dog.eat();
dog.swim();
dog.lookDoor();
}
}
//狗類 定義一個類要定義類的特徵(屬性),定義類的行為(方法)
//類 類是一個模板,它描述了一類物件的行為(方法)和狀態(屬性)
//物件 是類的一個例項,有狀態(屬性)和行為(方法) Object 物件(東西)
class Dog{
//特徵
int age;//狗的年齡
String color;//狗的顏色
String kind;//種類
String name;//名字
char gender;//性別
//行為
public void eat(){
System.out.println("可以吃飯");
}
public void swim(){
System.out.println("可以游泳");
}
public void lookDoor(){
System.out.println("可以看門");
}
}
訪問例項變數和方法
通過已建立的物件來訪問成員變數和成員方法,如下所示:
public class Test7 {public static void main(String[] args) {
// TODO Auto-generated method stub
Student s=new Student();
//呼叫方法
s.study();
s.love();
s.run();
//給物件的成員變數賦值
//給學生設定屬性
s.name="張三";
s.age=20;
s.gender="男";
s.color="黃種人";
s.print();
}
}
class Student{
//(成員變數)屬性 寫在類裡面
String name;
int age;
String gender;
String color;
//方法(行為)
public void study(){
System.out.println("學習");
}
public void love(){
System.out.println("談戀愛");
}
public void run(){
System.out.println("跑步");
}
//列印類的屬性
public void print(){
//name+age+gender+color
//System.out.println("name="+name+","+"age="+age+","+"gender="+gender+","+"color="+color);
System.out.println("name="+name);
System.out.println("age="+age);
System.out.println("gender="+gender);
System.out.println("color="+color);
}
}