大白话系列之java_大白话系列之——Java的面向对象思想
1、舉例理解面向對象
說到面向對象的思想,有一句話不得不說:萬物皆對象,萬物皆可歸類
什么意思呢?
就是說在面向對象的思想里它認為只要是存在的事物,它都是一個實例對象,都能找到一種或多種屬于它的歸類。
比如說有一個學生張三,你可以把他歸類于人類,也可以把它歸類于學生類等等;
再比如說你們家的貓,你可以把它歸類于動物類,也可以把它歸類于貓科類。
所以,類具體的怎么去定義,是看你從哪個角度去思考它了。總之一個東西只要它存在,你就肯定能給它歸個類,就算是遇到非常非常非常極端的情況,比如你家里有某一個東西,這種東西在世界上只有它一個,那也能給他歸個某某某類,只不過這種類里只有它一個對象而已。
所以在面向對象的思想里,它認為所有東西都是對象,這些東西它都至少都屬于某一個類,這就是萬物皆對象,萬物皆可歸類。
那有了面向過程以后,為什么還要出現面向對象呢?這種思想有什么好處?
2、面向對象和面向過程對比
(1)、面向對象是相對于面向過程而言的
(2)、面向對象和面向過程都是一種思想
(3)、面向過程強調的是功能行為
(4)、面向對象是將功能行為封裝進對象,強調的是具備了功能的對象
為了更清晰直觀的理解它倆的區別,下面舉個經典的例子:把大象放進冰箱需要幾步
左邊就是經典的面向過程的思想,它是強調打開,存儲,關閉的每一個具體的動作。
右邊是面向對象的思想,它是強調先把打開,存儲,關閉這些動作封裝到冰箱里,然后搞一個冰箱對象,然后調用對象的動作
面相對象這么做有什么好處呢?
大家可以想想,之前面向過程的時候你需要面向許許多多具體的方法函數一個一個去調用它們;
現在面向對象呢?你只需要找到某個對象,你只需要面向一個對象就好了,調用它的方法就搞定了。
3、類與對象的關系
類:是對某一類具有共同特征的事物的描述;
對象:就是這類事物實實在在存在的個體,是根據類產生出的具體實例。
那思考一個問題,是先有類還是先有對象啊?
這個問題怎么回答都對,如果你說先有類后有對象,這是從計算機編程語言角度去說的;
如果你說先有對象后有類,這是從現實生活中去說的,因為是現有了生活中實實在在的事物,我們才能去歸類對它進行描述。
關于類和對象的關系,我們還是舉例說明
現實生活中的對象:張三、李四,這兩個學生
我們要描述他們:提取對象中共性的內容,對具體的對象進行抽象
描述時發現這些對象的共有特性有:姓名、年齡、性別、會寫字,會學習技能等等,這些特征就可以描述出學生這一類事物
但是張三、李四,這些實實在在存在的個體,他們又有不同的姓名、年齡、性別等
映射到Java中,上邊的“描述”就是用class關鍵字定義的類;
上邊的“對象”就是對應Java在堆內存中用new關鍵字建立的實體。
下面用代碼簡單的體現一下
package com.cj.study.object;
//通過class來描述student學生類
public class Student {
private String name;
private int age;
private String sex;
public Student(){}
public Student(String name,int age,String sex){
this.name = name;
this.age = age;
this.sex = sex;
}
public void write(){
System.out.println("寫字。。。");
}
public void study(){
System.out.println("學習。。。");
}
}
package com.cj.study.object;
public class StudentTest {
public static void main(String[] args) {
//通過new在堆內存中產生對象實例
Student zhangsan = new Student("張三",18,"男");
Student lisi = new Student("李四",20,"女");
//有了對象以后,可以調用對象的方法
zhangsan.write();
zhangsan.study();
lisi.write();
lisi.study();
}
}
以上就是對面向對象的一些理解和總結
大概了解了面向對象是怎么回事后,后邊會陸陸續續的講一下面向對象的幾個特性:封裝、繼承、多態、抽象
總結
以上是生活随笔為你收集整理的大白话系列之java_大白话系列之——Java的面向对象思想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java插件获取首选项_Eclipse
- 下一篇: java定义dll文件位置,生成网站时如