1. 程式人生 > >第5篇-JAVA面向對象Ⅰ

第5篇-JAVA面向對象Ⅰ

java 面向對象 計算機語言 種類 現實生活

第5篇-JAVA面向對象Ⅰ

  • 每篇一句 :面向對象面向君,不負代碼不負卿

  • 初學心得: 代碼虐我千百遍,我待代碼如初戀

  • (筆者:JEEP/711)[JAVA筆記 | 時間:2017-04-03| JAVA面向對象 Ⅰ]

1.JAVA作為一種面向對象語言,具有以下基本概念:

● 多態
● 繼承
● 封裝
● 抽象
● 類
● 對象
● 實例
● 方法
● 重載

2.面向對象

什麽是面向對象?
面向對象是一種編程思想
通俗的說:面向對象是一種思考問題的思維方式

為什麽使用面向對象以及它的作用
計算機語言為了更好的去描述現實生活中的事物,按照生活中的思考方式來定義,這樣我們使用起來會更加方便
作用:將功能封裝到對象裏,強調的是具備某功能的對象;

面向對象的三個特征
1.封裝(Encapsulation)
2.繼承(Inheritance)
3.多態(Polymorphism)

3.JAVA類和對象

類與對象的概念
:類是一個模板,它描述一類對象的行為和狀態。
(1).什麽是類?類是分類和類別的意思
通過分類,可以區別不同的事物種類,
類是一組具有共同特性(屬性)與行為(方法)的事物集合

(2).類與對象之間的關系
對象:對象是類的一個實例(對象不是找個男/女朋友),而是有狀態和行為
例如,一只貓咪是一個對象,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等
類表示一個共性的產物,是一個綜合的特征,是一個個性的產物,也是一個個體的特征

類由屬性方法組成
屬性:相當於一個個的特征
方法:相當於人的一個個的行為,如,說話,吃飯…

類的定義格式

1./**
2.*類的定義格式代碼
3.**/
4.[修飾符] class  類名{
5.    1~n個構造方法;
6.    0~n個字段;
7.    0~n個方法;
8.}
9./**
10.*定義一個Demo類
11.*類名和方法名:類名 首字母大寫  方法名首字母小寫
12.**/
13.class Demo{
14.    String str = "Good"; //成員變量,也成為字段,類或對象所包含的數據,對類狀態的一種描述
15.    //方法,相當於類或對象的特征或行為
16. public void show(){        
17.    System.out.println("輸出"+str); //執行輸出語句
18.    }
19.}
20.一個類可以包含以下類型變量:
21.● 局部變量:在方法、構造方法或者語句塊中定義的變量被稱為局部變量
22.變量聲明和初始化都是在方法中,方法結束後,變量就會自動銷毀。
23.● 成員變量:成員變量是定義在類中,方法體之外的變量。這種變量在創建對象的時候實例化
24.成員變量可以被類中方法、構造方法和特定類的語句塊訪問。
25.● 類變量:類變量也聲明在類中,方法體之外,但必須聲明為static類型

對象的定義、創建以及使用格式
對象是根據類創建的,在Java中,使用關鍵字new來創建一個新的對象,創建對象需要以下三步:
● 聲明:聲明一個對象,包括對象名稱和對象類型。
● 實例化:使用關鍵字new來創建一個對象。
● 初始化:使用new創建對象時,會調用構造方法初始化對象。

一個類要想真正的進行操作,則必須依靠對象,對象的定義如下:

1.類名稱 對象名稱 = new 類名稱(); 這樣的格式就產生了對象

如果想要訪問類中的屬性和方法(方法的定義),,則可以依靠以下語法:

1.1.訪問類中的屬性:對象.屬性;    2.調用類中的方法: 對象.方法();

在JAVA中對象聲明有兩個含義:

1.1.聲明對象:personper = null; //表示聲明了一個對象,但是此對象無法使用,per沒有具體的內存指向
2.2.實例化對象:per = new pcrson();//表示實例化了對象,可以使用
3.類名  對象名稱 = new 類名();  //兩步操作
4.類名  對象名稱 ;    //聲明對象
5.對象名稱  =  new 類名();    //實例化對象
6.例:Demo demo =  new Demo();
7.通過"對象名.對象成員"的方式來操作對象中的內容


4.static關鍵字

1.static關鍵字
使用static關鍵字修飾一個屬性,聲明為static變量實質上就是全局變量
使用static關鍵字修飾一個方法,在一個類中定義一個方法為static
無需本類的對象即可調用此方法
使用static關鍵字修飾一個類

2.內存結構分析
存在方法區,靜態數據不屬於對象,屬於類,直接用類名調用屬性,而不是用對象調用屬性
無法從靜態上下文中引用非靜態:
靜態屬性和方法在類加載後就存到方法區內存中,此時,還沒有產生對象,而普通方法和屬性
屬於對象,所以不能調用

3.聲明static的方法限制
僅能調用其他的static方法
只能訪問static數據
不能以任何方式引用this或super

static關鍵字特點
隨著類的加載而加載,優先於對象存在,被所有對象所共享,可以直接被類名調用
static關鍵字使用註意
靜態方法只能訪問靜態成員,但是非靜態成員可以訪問靜態成員;
靜態方法中不可以使用this,super關鍵字

1.主方法(main)是靜態的
2.public static void main(String[] agrs){}

static關鍵字的使用

1.用static 修飾的成員表示它屬於這個類共有,而不是屬於該類的單個實例
2.static 修飾的字段 == 類字段
3.static 修飾的方法 == 類方法


5.new關鍵字

new 表示創建一個對象,表示實例化對象,表示申請內存空間
什麽是實例化
代碼在類中,類是抽象的,不是具體的,代碼都是針對抽象來編寫的,但是程序運行起來就需要用到具體的對象去執行
在編寫完類以後,具體化成為實實在在的對象,實例化對象就是把類具體化為一個對象的過程

6.匿名對象

匿名對象就是定義一個沒有名稱的對象
該對象特點是只能使用一次,該對象會直接在堆中開辟內存空間
該對象使用後會成為垃圾對象,被GC回收

1.new 類名("").方法名();  //生成匿名對象,只能使用一次

匿名對象特點:

1.對方法或字段只進行一次調用;
2.new Car().show();
3.new Car().run();
4.可作為實際參數進行傳遞,只在堆內存中開辟空間,而沒有在棧內存的引用
5.public void show(Car  c){ }    
6.new Car().show(new Car());


7.對象的引用

1. //1. 創建了一個Demo1  的實例(對象)
2.Demo1  demo  =  new Demo1();//2. 把這個Demo  實例賦給 demo   變量
3. demo.brand="HelloWorld";  //引用變量指向對象,也就是說引用型變量存放的僅僅是一個引用

8.this關鍵字

this關鍵字特點:this表示當前對象。
調用類中的屬性、調用類中的方法或構造方法、表示當前對象
當前對象 ←→ 當前正在調用實例成員的對象
換言之:誰調用了方法,誰就是當前對象。
什麽時候使用this關鍵字呢?
1.方法間的相互調用; 2.this.字段;
3.構造器中相互調用,但是此時this([參數])必須寫在構造方法第一行。
4.this不能用在static修飾的方法裏和static修飾的代碼塊裏;

9.import語句

JAVA包主要用來對類和接口進行分類
當開發Java程序時,可能編寫成百上千的類,因此很有必要對類和接口進行分類
Import語句通俗的說就是引入或導入的意思
例如,下面的命令行將會命令編譯器載入java_installation/java/io路徑下的所有類

1.import java.io.*;  //*星號表示尋找某個包下被使用到的全部類


10.JAVA常用包介紹

1.java.lang  : 語言核心類,系統自動導入
2.java.util  : java 工具類、集合框架類和接口
3.java.net   : 網絡編程接口和類
4.java.io    : 流的接口和類
5.java.text  : java格式化相關類
6.java.sql   : jdbc相關接口和類 
7.java.awt   : 抽象窗口工具集相關接口和類
8.java.swing :圖形用戶界面相關接口和類(可跨平臺)

11.JAVA訪問修飾符

修飾符類內部同一個包子類任何地方
private



default



protected



public



private(私有的):類訪問權限:本類內部可以訪問,不能繼承到子類
default(默認的):什麽都不寫,包訪問權限:本類內部可以訪問,同包其他類也可以訪問,同包可繼承
protected(保護的):子類訪問權限:本類內部可以訪問,不同包的子類也可以訪問,同包其他類也可以訪問,能繼承到子類
public(公共的):公共訪問權限:任何地方都可以訪問,能繼承到子類

12.構造方法

什麽是構造方法?構造方法就是類構造對象時調用的方法,用於對象的初始化工作
構造方法是實例化一個類的對象時,也就是new的時候,最先調用的方法
構造方法的定義:是在類中定義,定義格式,方法名稱與類名相同,無返回值類型聲明
對象實例化語法

1.Demo2 de = new Demo2();  //new Demo2後面有括號,帶括號表示調用了方法,此時調用的方法就是構造方法

每個類都有構造方法,如果沒有顯式地為類定義構造方法,Java編譯器將會為該類提供一個默認構造方法
在創建一個對象的時候,至少要調用一個構造方法,構造方法的名稱必須與類同名,一個類可以有多個構造方法

對象的產生格式

1.類名稱  對象名 = new  類名稱();
2.因為有(),所以是方法,實際上它就是構造方法,並且是非私有的構造方法。
3.如:Demo3 de = new Demo3();

構造方法特點
方法名與類名相同,不用定義返回值類型 ,不需要寫return語句
構造方法作用:給類中的字段進行初始化,可以用來創建對象

初學(面向對象) Ⅰ 難點: ★★★★★

希望每一篇文章都能夠對讀者們提供幫助與提升,這乃是每一位筆者的初衷


感謝您的閱讀 歡迎您的留言與建議

  • 新浪官方微博: @中國熱點影視傳媒

  • Github博客: https://github.com/jeep711/jeep711.github.io

  • Blog Garden:http://www.cnblogs.com/JEEP711/

  • W3C/Blog:http://www.w3cschool.cn/jeep711blog/

  • CSDN/Blog:http://blog.csdn.net/jeep911

  • 51CTO/Blog:http://jeep711.blog.51cto.com/

  • 碼雲:http://git.oschina.net/JEEP711/jeep711.github.io

  • 郵箱: [email protected][email protected]



本文出自 “JEEP711” 博客,轉載請與作者聯系!

第5篇-JAVA面向對象Ⅰ