類和物件(java和C++綱要總結)
閱讀《C++primer》和 看java的視訊,圖書館的各類,總結一下。
使用 C++的類機制使用者能夠定義自己的資料型別, 因此 ,類經常被稱為使用者定義的 型別 user-defined type, UDT 通過類 我們可以向一個已有的型別新增功能
面向物件三大特性
(1)封裝:保護內部的操作不被破壞;
(2)繼承:在原本的基礎之上繼續進行擴充;
(3)多型:在一個指定的範圍之內進行概念的轉換;
類: 指的是共性的概念,而物件是具體的,可使用的事物
先有類,(生產物件的藍圖),而後產生物件,物件所具有的所有行為與屬性。C++和java,C#在具體實現上有些許差別,但思想一樣。
類中的屬性與方法不再由主方法呼叫,而是需要通過物件來呼叫
在java中
物件宣告語法
類名稱 物件名稱 =new 類名稱()
abstract class Person{ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public abstract void test(); } //下面程式碼在主方法 Person per =new Student(); per.test();
在C++中
類體定義了一個域 scope 在類體中的類成員宣告把這些成員名字引入到它們的類的域中 ,如果兩個類有同名的成員, 那麼程式不會出錯 ,並且這兩個成員將指向不同的物件。
class Screen {
public:
// 成員函式
private:
string _screen;
string::size_type _cursor;
short _height;
short _width;
};
//下面程式碼在main函式中
Screen myScreen;
物件的建立和銷燬
在java中
New 關鍵字 在堆上開闢了新空間
棧記憶體(虛擬機器區域性變量表):存放區域性變數(包含基本資料型別,物件引用—物件的名稱)
堆記憶體:儲存真正物件
物件(引用資料型別)必須在例項化後呼叫,否則會產生NullPointerException (執行時異常)
垃圾空間:沒有棧記憶體指向的堆記憶體空間
//Private :內部操作對外部不可見(在類的外部不能直接使用物件來操作)
私有屬性訪問和設定內容,提供getter setter
OS提供垃圾回收,沒有解構函式(很方便,有些許侷限性方面的不足)
但是C++ 的建立較為簡單,銷燬使用解構函式,較為複雜,預設的解構函式在一些表值的方面可用,但是涉及程式設計師自己在堆上的開闢,就必須自己寫解構函式來釋放空間了。
this指標和this關鍵字
在C++中,類和物件的思想和java一樣,不一樣的是多了些函式,如解構函式,操作符過載
和java一樣,共有的是private,public,protect來實習封裝和類直接的呼叫,繼承。不同的是java提供final來防止繼承,C++中的繼承,多繼承,虛繼承在以後的筆記中總結。
java的this和C++中的this略微有所不同,功能實現差不多。但是在C++中,this是作為每一個函式的預設第一個引數,java則是
this 關鍵字
- this呼叫本類屬性
- this呼叫本類方法
- this表示當前物件
實現3中不同的功能,當然額外還有super使用。
C++中,在成員函式中 this 指標的用處不全是返回該成員函式被應用的物件,但大多數情況是這樣實現。
類的巢狀
當然java和內部類和C++的巢狀類,區域性類粗談以下,
java的內部類可以解決單繼承的侷限性,分為成員內部類,靜態內部類,方法內部類,匿名內部類(方法內部類特殊形式)。
一個類可以在另一個類中定義 這樣的類被稱為巢狀類,巢狀類是其外圍類的一個成員 ,巢狀類的定義可以出現在其外圍類的公有 私有或保護區中區域性類只在定義它的,其形式和java的內部類一模一樣,但我只在書上看到例子,暫時不知道使用途徑
區域性域內可見 與巢狀類不同的是 ,在定義該類的區域性域外沒有語法能夠引用區域性類的成員,我暫時只瞭解語法。
在C++中,巢狀類(或者叫內部類),內部類是外部類的友元類,內部類可以訪問外部類中的static,列舉,不需要外部類的物件/類名,用於類的強關聯使用
相關推薦
類和物件(java和C++綱要總結)
閱讀《C++primer》和 看java的視訊,圖書館的各類,總結一下。 使用 C++的類機制使用者能夠定義自己的資料型別, 因此 ,類經常被稱為使用者定義的 型別 user-defined type, UDT 通過類 我們可以向一個已有的型別新增功能 面向物件三大
quartznet任務排程和訊息排程(JAVA與C#版對比)
quartznet任務排程和訊息排程 1. 作用 自動執行任務。 2. 下載地址 NET版本 JAVA版本 1下載 http://quartznet.sourceforge.net/downlo
JAVA中的型別和物件(Integer和Int)
Integer是物件 Int是型別 比如 boolean 和Boolean就也不一樣,long和Long等等 作為引數傳遞時要注意 要進行轉換如下 int到Integer: int a=3; Integer A=new Integer(a); 或: Integer A
Java基礎-new一個在不同個包中且只有protected構造方法的類的物件(匿名內部類的使用)
目錄 前言 如何new一個在不同個包中且只有protected構造方法的類的物件呢?在講解如何實現之前,來講一下事情的緣由。下面將說明如何實現(這裡主要講的是如何使用匿名內部類實現)。後續描述的內容如有問題請廣大讀者能夠耐心指出,給讀者帶來不便
總結:c++幾種容器的用法及棧和佇列(適合自學c++的同學)
1.string型別用法 還可以比較大小如a>b,如果a的字典序大於b的返回1,否則返回0 getline(cin,s);讀取一行string型別 string s2(s1)將s2初始化為s1的副本 或m="123";m+="456";cout<<
20190301跳一跳(Java、C++、Python)
問題描述 近來,跳一跳這款小遊戲風靡全國,受到不少玩家的喜愛。 簡化後的跳一跳規則如下:玩家每次從當前方塊跳到下一個方塊,如果沒有跳到下一個方塊上則遊戲結束。 如果跳到了方塊上,但沒有跳到方塊的中心則獲得1分;跳到方塊中心時,若上一次的得分為1分或這是本局遊戲的第一次跳躍則此
C++類和物件(一)&&實現OFFSETOF巨集&&THIS指標
一.目錄 1.物件的相關知識 2.類的定義 3.類的例項化 4.類物件模型 5.模擬實現offsetof巨集 6.this指標 二.正文 1.物件的相關知識 C語言是面向過程的,關注的是過程,分析求解問題的步驟,通過函式呼叫逐步解決問題
類和物件(C++學習筆記 16)
類(class)是一種資料型別,是一種使用者定義的抽象的資料型別。 類是一種抽象的資料型別,它不佔儲存空間,不能容納具體的資料,因此在類宣告中不能給資料成員賦初值。 類代表了一批物件的共性和特徵。 類是進行封裝和資料隱藏的工具,它將資料與操作緊密地結合起來。
Java類和物件(四)
抽象類和抽象方法 1. 抽象類 在 Java 面向物件當中,所有的物件都是用過類進行描繪的,但是並不是所有的類都是用來描繪物件的,如果一個類中沒有包含足夠的資訊來描繪一個具體的物件,我們把這種類定義為抽象類。 抽象類的特徵: 抽象類不能用來例項化物件,所以抽象類必須被
JAVA程式設計基礎——類和物件(繼承、多型)
一、單利模式 (1)單例類只能有一個例項; (2)單例類必須自己建立自己的唯一例項; (3)單例類必須給所有其他物件提供這個例項。 場景:一個類可以定義無數個物件,但是隻有一個例項。 1、餓漢式單利模式 package practise.test1030; //餓漢式單利模式
【計算機基礎】Java學習篇(四) 認識類與物件(打包器、陣列和字串)
介紹完基本型別,下面介紹類型別。 瞭解物件與參考的關係,認識打包器,以及陣列物件、字串物件。 一、類與物件 1.建立類 編寫程式需要使用物件(Object),產生物件必須先定義類(Class),類就像是設計圖,而物件是類
java認證筆記-------類和物件(1)
類和物件思維導圖 類和物件的關係: 類是實體特徵的集合,是對物件的抽象,是一種抽象的資料型別。 物件是一種具體的事物是一個具體的概念。 可以說類是個體抽象的集合,物件是具體具體事物的呈現。例如人類是一個類,小明是一個具有人類特徵的物件。
c++| |類和物件(上篇)
類和物件(上篇) 1.類和物件的初步認知 c語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過函式呼叫逐步解決問題 c++是基於面向物件的,關注的是物件,將一件事情拆分成不同的物件,考物件之間的互動完成 2.類的引入 c語言中,結構
C++類和物件(一)
1.物件的相關知識 C語言是面向過程的,關注的是過程,分析求解問題的步驟,通過函式呼叫逐步解決問題。 C++是面向物件的,關注的是物件,將一件事拆分成不同的物件,靠物件之間的互動完成。 物件:任何一個物件都應該具有兩個要素,即屬性和行為,物件是由一組屬性和行為構成的。如現實生活中的手機就是一個物
C++類和物件(一)&&實現OFFSETOF巨集&&THIS指標
一.目錄 1.物件的相關知識 2.類的定義 3.類的例項化 4.類物件模型 5.模擬實現offsetof巨集 6.this指標 二.正文 1.物件的相關知識 C語言是面向過程的,關注的是過程,分析求解問題的步驟,通過函式呼叫逐步解
C++ 類和物件(上)
目錄 類 類的引入 類的定義 訪問限定符 封裝 類的作用域 類的例項化 引出 C語言是面向過程的,關注的是過程,分析出求解問題的步驟,通過函式呼叫逐步解決問題。C++是基於面向物件的,關注的是物件,將一件事情拆分成不同的物件,靠物
C#類和物件(八)——部分類
partial關鍵字允許把類、結構、方法或介面放在多個檔案中。一般情況下,某種型別的程式碼生成器生成了一個類的某部分,所以把類放在多個檔案中是有益的。假定要給類新增一些從工具中自動生成的內容。如果重新執行該工具,前面所做的修改就會丟失。partial關鍵字有
java:面向物件(學生和老師類的繼承練習)
package Day08; public class Demo8_Person { public static void main(String[]args){ Studen
【C++】類和物件(4)
一、類的六個預設成員函式 下面是一個Date類,但是它類中什麼成員也沒有,這就是空類。但是它雖然看起來什麼都沒有,實際上不是的,在我們什麼都不寫的情況下,它會自動生成六個預設的成員函式。如圖所示的建構函式、解構函式、拷貝建構函式、賦值過載函式、普通物件取地址函式、const物件取地址函式這六個函
【C++】類和物件(3)—>> this指標
一、this指標的引入 我們在現實中,定義一個類都是根據一個需求來定義的。所以先來看一個常用的日期類 Date 。 class Date { public: void Print() { cout << _year << "-" << _month