在Java語言的開發中有一中說法是:世間萬物皆對象,即花鳥魚蟲,飛禽走獸點均可以是對象,那麼我要去思考的是如何把這些對象用編程的思想去理解,又如何去展示?java
面向對象是相對於①面向過程的,經過對現實世界進行②理解和抽象的方式,把複雜的事物變得簡單的一種③編程思想(OOP Object Oriented Programming)編程
①面向過程:(Procedure Oriented)是一種以過程爲中心的編程思想,是以什麼正在發生爲主要目標進行編程。
②理解和抽象:現實世界中的一切事物都有兩個特性,即靜態的屬性(一個事物的名字,性質等)和動態的方法(登山,讀書,打籃球等)。這些事物都有公共的部分,例如靜態的標識一個事物的ID,名字...,又例如動態的表示事物方法的動,靜...在以編程的方式呈現這些對象的時候就能夠把這些事物都有的靜態屬性和動態方法抽取出來,只寫一份讓全部對象使用,就能夠大大簡化代碼了,這就是編程的思想中的抽象。安全
類就是一類事物的統稱(人類),是Java語言的基本單位,是事物的模板和設計圖。spa
對象是對類的具體化(小明),對象的狀態來描述對象的基本特徵,對象的行爲用來描述對象的功能,對象的惟一標識指的是對象在內存中的惟一地址,用來和其餘對象區分。設計
經過類這個載體把對象的屬性和行爲封裝爲「類組件」,對於客戶影藏具體的實現細節,只提供公共的訪問方法,一方面提升了程序的安全性,一方面提升了代碼的重用性,是面向對象的核心。3d
子類自動繼承父類的屬性和方法,使得子類在遇到和父類一樣的問題時,就能夠用父類的方法來解決,實現了複用,是類與類之間的關係表現形式。code
將父類對象應用於子類的特徵就是多態,加強了軟件的靈活性和重用性。對象
package com.mtingcat.javabasis.object; public class Student { public static void main(String[] args) { Person tom = new Person(); tom.name = "tom"; tom.age = 12; tom.sex = "Man"; System.out.println(tom.name+","+tom.age+","+tom.sex); tom.Breathe(); tom.Move(); } } class Person{ /** * 1.成員變量 * 類的屬性(特徵) * 全局變量 */ String name; int age; String sex; /** * 2.成員方法 * 類的方法(行爲) */ void Breathe(){ /* * 局部變量: * 局部變量是在方法被執行時建立,在方法執行結束時被銷燬,局部變量在使用時必須進行賦值操做或者被初始 * 化,不然會出現編譯錯誤 * 能夠將局部變量的有效範圍稱之爲變量的做用域,局部變量的有效範圍從該變量的聲明開始到該變量的結束爲止 */ @SuppressWarnings("unused") String air; System.out.println("呼吸"); } void Move(){ @SuppressWarnings("unused") String power; System.out.println("運動"); } }
①在棧內存中,建立一個引用變量p,持有對象的地址值
②在堆內存中,建立Person對象,而且開闢變量的空間,完成初始化
③給堆內存中的元素,分配一個惟一標誌,地址值。交給p去保存。
④p.name=」lisi」;p.age=20;就去堆內存中找惟一的地址值,找到Person對象,並對其屬性進行修改賦值。
⑤p.eat();就去堆內存中找惟一的地址值,找到Person對象,執行Person對象的方法。blog