1. 程式人生 > >類和物件(java和C++綱要總結)

類和物件(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 關鍵字

  1. this呼叫本類屬性
  2. this呼叫本類方法
  3. this表示當前物件

實現3中不同的功能,當然額外還有super使用。

C++中,在成員函式中 this 指標的用處不全是返回該成員函式被應用的物件,但大多數情況是這樣實現。

類的巢狀

當然java和內部類和C++的巢狀類,區域性類粗談以下,

java的內部類可以解決單繼承的侷限性,分為成員內部類,靜態內部類,方法內部類,匿名內部類(方法內部類特殊形式)。

一個類可以在另一個類中定義 這樣的類被稱為巢狀類,巢狀類是其外圍類的一個成員 ,巢狀類的定義可以出現在其外圍類的公有 私有或保護區中區域性類只在定義它的,其形式和java的內部類一模一樣,但我只在書上看到例子,暫時不知道使用途徑
區域性域內可見 與巢狀類不同的是 ,在定義該類的區域性域外沒有語法能夠引用區域性類的成員,我暫時只瞭解語法。

在C++中,巢狀類(或者叫內部類),內部類是外部類的友元類,內部類可以訪問外部類中的static,列舉,不需要外部類的物件/類名,用於類的強關聯使用

相關推薦

物件javaC++綱要總結

閱讀《C++primer》和 看java的視訊,圖書館的各類,總結一下。 使用 C++的類機制使用者能夠定義自己的資料型別, 因此 ,類經常被稱為使用者定義的 型別 user-defined type, UDT 通過類 我們可以向一個已有的型別新增功能  面向物件三大

quartznet任務排程訊息排程JAVAC#版對比

quartznet任務排程和訊息排程 1.  作用 自動執行任務。 2.  下載地址 NET版本 JAVA版本 1下載 http://quartznet.sourceforge.net/downlo

JAVA中的型別物件IntegerInt

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跳一跳JavaC++、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