国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Java面向對象程序設計:類的定義,靜態變量,成員變量,構造函數,封裝與私有,this概念與用法詳解

瀏覽:3日期:2022-09-02 17:31:19

本文實例講述了Java面向對象程序設計:類的定義,靜態變量,成員變量,構造函數,封裝與私有,this概念與用法。分享給大家供大家參考,具體如下:

本文內容: 什么是面對對象 類的定義與對象實例化 成員變量 成員變量的有效范圍 成員變量的賦值 靜態變量、方法與實例變量、方法 構造函數 封裝與私有 this關鍵字

注:函數和方法是一樣東西。【由于我之前學習的時候有些書籍不是同樣的說法,書看多了,我就習慣了不同情況下用不同的說法】

首發時間:2018-03-22

什么是面對對象: 面向對象強調行為處于對象之中,并不直接執行行為,而是通過對象執行行為 類是對象的抽象,對象是類的具體實例。 【可以說,人是一個類,而不同身份的你我他是一個具體實例。人這個類抽象出了我們人類共有的屬性,而我們人是人類的各種屬性的具體實例結果。】 面向對象的基本特征:封裝,繼承,多態 封裝:比如一個對象把它的屬性和方法都封裝起來的話,它執行的屬性和方法都是這個對象的,而不是其他對象的。 繼承:子類可以繼承父類的屬性和方法。比如“人類”繼承了“哺乳類”的屬性和方法,又增添人類獨有的屬性和方法。 多態:一種多態是指同一個操作被不同對象執行時有不同的結果(比如:狗的say是“汪汪汪”,而貓的是'喵喵喵');另一種多態是根據對象的傳入而決定執行不同的方法。【本質上這兩個是一樣的】 類的定義與對象實例化:類的定義: 類的定義包括兩部分:類聲明和類體 類是java程序的基本要素 定義類的格式:Java面向對象程序設計:類的定義,靜態變量,成員變量,構造函數,封裝與私有,this概念與用法詳解 修飾符可以是public 或空: public代表即使不同包也能訪問該類;而空代表只能該類只能在同一個包內訪問。 類體的內容包括變量的生命和方法的定義?!舅詥为毜亩x是錯誤的,只能聲明并同時定義】 Java面向對象程序設計:類的定義,靜態變量,成員變量,構造函數,封裝與私有,this概念與用法詳解 Java面向對象程序設計:類的定義,靜態變量,成員變量,構造函數,封裝與私有,this概念與用法詳解 對象實例化 類的實例化就是創建一個對象: 創建對象:類名 變量名 =new 類名()【類名()可以傳入一些參數來初始化對象,由類的同名方法(構造方法,下面講)定義能傳入什么參數】 Java面向對象程序設計:類的定義,靜態變量,成員變量,構造函數,封裝與私有,this概念與用法詳解 匿名對象:簡單來說就是沒有變量名的實例化,直接使用new 類名()來執行操作,由于沒有變量名來特異的標記一片內存空間,所以匿名對象一般只使用一次,比如new Dog().hello(); 調用方法或變量:對于實例方法或變量的可以直接使用對象來調用;而對于靜態方法或變量,既可以使用對象,也可以使用類來調用。 Java面向對象程序設計:類的定義,靜態變量,成員變量,構造函數,封裝與私有,this概念與用法詳解 Java面向對象程序設計:類的定義,靜態變量,成員變量,構造函數,封裝與私有,this概念與用法詳解

class Dog{ String name; int foot=4; Dog(){//這是一個構造函數 this.name='旺財'; } void hello() { System.out.println('hello,this is a dog'); } static void static_hello() { System.out.println('hello,this is a dog too'); }}public class Demo { public static void main(String args[]) {Dog d=new Dog(); System.out.println(d.foot);//4 d.hello();//hello,this is a dog d.static_hello();//hello,this is a dog too Dog.static_hello();//hello,this is a dog too }}成員變量:成員變量的有效范圍 成員變量在整個類范圍內有效,與變量聲明的位置無關。方法中的局部變量從聲明它的位置開始生效,并且只在方法體內有效。 當局部變量跟成員變量同名時,如果想特別的使用成員變量,可以使用“this.變量名” 成員變量有默認值,而局部變量沒有默認值。成員變量的賦值: 可以使用構造函數來對一些成員變量初始化 如果成員變量不是私有的,也可以直接取得變量名來賦值,比如dog.age=18靜態變量、方法與實例變量、方法:

根據變量、方法是否有static修飾可以分為實例變量,實例方法和靜態變量(類變量),靜態方法(類方法)

靜態變量,靜態方法:

被static修飾的成員的特點:

隨著類的加載而加載,優先于對象存在,靜態成員內存位于方法區

被所有對象所用享【所以可稱為類變量或類方法】

可以直接類名調用

靜態方法只能訪問靜態成員

靜態方法中不可以寫this,super關鍵字

實例變量、實例方法: 實例變量、實例方法是對象的變量和方法,對象操作變量或方法也只是操作自己的變量或方法,不會影響其他對象。

實例變量方法跟靜態變量方法的區別好比:“泰迪狗類”比如有一個共有屬性“狗種類名”,那么這個屬性應該是所有泰迪狗都有的,并且是泰迪狗共享的,如果某一天人類想改泰迪狗的種類名稱,那么應該是所有泰迪狗都改的(靜態的);而每一只泰迪狗都有自己的主人,這是由每一只狗自身決定的,所以這是特有屬性,即使這只狗換了主人,也不會影響別的狗。(實例的)

構造函數: 構造函數是類中的一種特殊函數,構造函數的名字與類的名字相同,而且沒有類型。 構造函數負責對類對象的特定屬性初始化?!颈热缑恳恢还穼ο蠖加胁煌拿?,而狗類是一個模板,是沒有名字的,而構造函數可以做到給狗定義名字?!? 類中可以有多個構造函數,它們以函數重載的方式存在。 構造函數是沒有類型的,是直接以“ 類名(){}” 作為函數。 類中會默認有一個無參數的構造函數,如果定義了其他構造函數,那么這個默認的無參構造函數就會不默認存在了。

class Dog{ String name; Dog(){ this.name='旺財'; } Dog(String name){ this.name=name; }}public class Init_usage { public static void main(String args[]) {Dog d3=new Dog(); Dog d4=new Dog('小菜'); System.out.println(d3.name); System.out.println(d4.name); }} 補充: 構造函數之間可以相互調用,但要防止遞歸調用。 Java面向對象程序設計:類的定義,靜態變量,成員變量,構造函數,封裝與私有,this概念與用法詳解 Java面向對象程序設計:類的定義,靜態變量,成員變量,構造函數,封裝與私有,this概念與用法詳解 調用其他構造函數來實現初始化在有多個變量需要初始化的時候有明顯的代碼節省。 封裝與私有: 類的封裝的一個體現是變量和函數的私有化 封裝的準則: 將不需要對外提供的內容都隱藏起來。 將屬性都隱藏,提供公共方法對其訪問。 私有化使類的非公共屬性隱藏了起來,比如一個“人類”對象有自己的資產,一般只有自己才能知道自己有多少資產,并且不想直接給別人看到,但如果別人問題,還是會告訴別人的(隱藏了自己的資產情況,但是自己能夠使用方法獲得結果,這個方法是開放的,調用就是相當于別人問)。 可以使用private來使變量和函數私有化,這樣之后不能直接使用 對象.變量 或 對象.函數 來調用,只有對象內部的方法才能調用 將變量或方法私有化之后,一般對外提供getXXX,setXXX方法進行訪問,提高數據訪問的安全性。

class Man{ private int money; String name; Man(String name,int money){ this.name=name; this.money=money; } int getmoney(){ return money; } void setMoney(int money){ this.money=money; } }public class Private_usage { public static void main(String[] args) { Man m=new Man('lilei',2000); System.out.println(m.name);//lilei// System.out.println(m.money);//報錯的,因為私有了,不能訪問// System.out.println(m.wife);//報錯的,因為私有了,不能訪問 System.out.println(m.getmoney()); //2000 m.setMoney(6000); System.out.println(m.getmoney());//6000 }} this關鍵字: this代表當前對象(調用函數時代表當前調用該函數的對象),比如在類中可以使用this.XXX來調用對象自己的變量或方法。 當局部變量和成員變量同名時,可以用this關鍵字區分,this.XXX代表使用對象自身的變量

類中的成員變量默認是帶有this前綴的,但遇到同名時必須加以區分。

this加上參數列表(this(參數))的方式就是訪問本類中符合該參數的構造函數

用于調用構造函數的this語句必須放在第一行,因為初始化動作要優先執行

class Person{ String name; int age; Person(String name,int age){ this.name=name; this.age=age; } void hello() { this.sysprint();// sysprint(); } void sysprint() { System.out.println('hello world!'); }}public class This_usage { public static void main(String args[]) { Person p1=new Person('lilei',18); p1.hello();//hello world! }}

更多關于java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設計有所幫助。

標簽: Java
相關文章:
主站蜘蛛池模板: 国产美女一区精品福利视频 | 欧美片网站免费 | 99re在线视频精品 | 亚洲加勒比久久88色综合 | 亚洲美女综合网 | 成人精品一区二区三区 | 中文字幕视频网站 | 美国做受三级的视频播放 | 99国产福利视频在线观看 | 欧美一级毛片免费播放aa | 成人免费观看视频久爱网 | 久久er热视频在这里精品 | 国产精品视频免费 | 亚洲欧美日韩精品久久久 | 欧美成人看片黄a免费看 | 日本不卡在线一区二区三区视频 | 精品九九久久国内精品 | 毛片网站视频 | 一区二区三区伦理 | 性色a v 一区 | 精品亚洲福利一区二区 | 午夜影院0606 | 国产精品久久久香蕉 | 免费国产成人高清在线看软件 | 成年人在线免费网站 | 亚洲精品久久久久综合91 | 99国产精品欧美久久久久久影院 | 美女网站免费观看视频 | 99爱在线精品视频网站 | 亚洲国产字幕 | 国产成年人在线观看 | 中文一区二区在线观看 | 亚洲欧美在线一区二区 | 欧美日韩在线观看一区二区 | 亚洲欧美一级久久精品 | 揉揉胸摸腿摸下面va视频 | 手机在线观看a | 久久精品亚洲乱码伦伦中文 | 国产三级在线播放线 | 国产夫妇肉麻对白 | 国产一区免费在线观看 |