Java語言是一種面向的程式設計語言,而面向物件思想是一種程式設計思想,我們參照面向物件思想使用java語言去設計,開發計算機程式,
除去面向物件之外還有一個面向程序,
區別:
- 面向程序:當要實作一個功能的時候,面向程序,要處理好每一個節點,直至整個程序結束,然后得到結果,
- 面向物件:當要實作一個功能的時候,直接去呼叫一個關于這個功能相關的類,把程序交給其他類來處里,自己等著獲取結果
- 面向程序強調這功能的步驟,面向物件強調這功能的結果,
舉例:
-
面向程序:把衣服脫下來-->找一個盆-->放點洗衣粉-->加點水-->浸泡10分鐘-->揉一揉-->清洗衣服-->擰干-->晾起來
-
面向物件:把衣服脫下來-->打開全自動洗衣機-->扔衣服-->按鈕-->晾起來
特點:
面向物件思想是一種更符合我們思考習慣的思想,它可以將復雜的事情簡單化,并將我們從執行者變成了指揮者,面向物件的語言中,包含了三大基本特征,即封裝、繼承和多型,
什么是類:
類是對一種具有類似的屬性和行為的事物的集合,eg:學生類,教師類等等,學生有相同的屬性:學生證號,姓名等等,有相同的行為:做作業,寫卷子等等,
現實中:
- 屬性:就是該事物的狀態資訊,
- 行為:就是該事物能夠做什么,
什么是物件:
是一類事物的具體體現,物件是類的一個實體,必然具備該類事物的屬性和行為,比如學生類中的張三是一個學生,那么張三就是一個物件,他具有學生證號,姓名等屬性,也具有做作業,寫卷子等行為,
類與物件的關系:
- 類是對一組事物的統稱描述,類似抽象的,它看不見摸不著 eg: 比如手機類是手機的統稱,它有一系列的屬性比如顏色,配件等等,行為是
- 物件是一組事物的實體,是具體的,是真正存在的可以看得見摸得著 eg: 你買的一個小米9手機是一個實實在在的東西,就屬于一個物件
類的定義:
訪問權限修飾符 class 類名 {
//成員變數
//成員方法
}
物件的定義:類名 物件名 = new 類名();
類與物件的練習:
public class OverloadDome03 { // 定義一個求和 工具類 /* 定義sum方法兩個sum(int,int) 并回傳值*/ public int sum(int a,int b) { return a+b; } /* 定義sum方法兩個sum(int,int,int) 并回傳值*/ public int sum(int a,int b,int c) { return a+b+c; } /* 定義sum方法兩個sum(double,double) 并回傳值*/ public double sum(double a,double b) { return a+b; } /* 定義sum方法兩個sum(int,double) */ public void sum(int a,double b) { System.out.println(a+b); } } public class OverloadDome03Test { /* 求和測驗類 */ public static void main(String[] args) { OverloadDome03 ov03 = new OverloadDome03();//實體化OverloadDome03 double sum = ov03.sum(0.0, 1.293); //呼叫sum(double,double)f方法 并列印 System.out.println(sum); int sum1 = ov03.sum(1,2); //呼叫sum(int,int)f方法 并列印 System.out.println(sum1); ov03.sum(12,19.22); //呼叫sum(int,double); int sum2 = ov03.sum(1,2,3); //呼叫sum(int,int,int)f方法 并列印 System.out.println(sum2); } }
方法定義:
語法:
訪問權限修飾符 靜態修飾符 回傳值型別 方法名(引數型別 引數名,引數型別 引數名...){
執行代碼...
return 回傳陳述句;
}
成員變數和區域變數:
在之前的個作業中,我們學習了怎么去定義變數,變數又分為成員變數(又叫全域變數)和區域變數,下面直接說區別吧,
- 位置不同:全域變數定義在類之內,方法之外;區域變數定義在方法之內,
- 作用域不同:全域變數作用于整個類中;區域變數作用于單個方法之中,
- 初始化不同:全域變數可以不用初始化賦值就可以使用;區域變數若要使用必須先初始化然后才能使用,
- 記憶體位置不同:全域變數存盤在堆記憶體,區域變數存盤在堆疊記憶體,
- 生命周期不同:全域變數隨物件的創建而存在,隨物件的銷毀而消失,區域變數隨方法的呼叫而創建,方法結束而消失,
下面簡單的定義一下:
public class VariableDome01 { int j; // 定義一個全域變數j public void test1() { int i = 1; //定義一個區域變數i并賦值i System.out.println(j+i); //假若i沒有賦值將無法使用 } } //測驗 public class VariableDome01Test { public static void main(String[] args) { VariableDome01 variableDome01 = new VariableDome01(); variableDome01.j=1; //測驗中可以直接給j賦值卻不能為i賦值因為i只作用于VariableDome01中test1方法中 variableDome01.test1(); //呼叫后列印為2 } }
方法多載:
概念:指在同一個類中,允許存在一個以上的同名方法,只要它們的引數串列不同即可,與修飾符和回傳值型別無關,
- 多個方法在同一個類中
- 多個方法具有相同的方法名
- 多個方法的引數不相同,型別不同或者數量不同
- 引數串列:個數不同,資料型別不同,順序不同,
如下有幾個方法,可以看看多載方法有幾個:
public static void method(){}
public static void method(int a){}
static void method(int a,int b){}
public static void method(double a,int b){}
public static void method(int a,double b){}
public void method(int i,double d){}
public void method(){}
public static void method(int i,int j){}
我簡略的分析一波=-=我比較菜

個人學習,內容簡略,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/134852.html
標籤:Java
上一篇:Spring Security 實戰干貨:圖解用戶是如何登錄的
下一篇:Java Web(3)-XML
