久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

C語言面向?qū)ο缶幊虒W(xué)習(xí)筆記

時(shí)間:2019-05-12 05:01:35下載本文作者:會(huì)員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《C語言面向?qū)ο缶幊虒W(xué)習(xí)筆記》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《C語言面向?qū)ο缶幊虒W(xué)習(xí)筆記》。

第一篇:C語言面向?qū)ο缶幊虒W(xué)習(xí)筆記

C語言面向?qū)ο缶幊坦P記

1、在底層驅(qū)動(dòng)函數(shù)前加static標(biāo)識(shí)符的作用:

a:加了static后表示該函數(shù)失去了全局可見性,只在該函數(shù)所在的文件作用域內(nèi)可見 b:當(dāng)函數(shù)聲明為static以后,編譯器在該目標(biāo)編譯單元內(nèi)只含有該函數(shù)的入口地址,沒有函數(shù)名,其它編譯單元便不能通過該函數(shù)名來調(diào)用該函數(shù),這也是對(duì)1的解析與說明

2、底層驅(qū)動(dòng)的封裝模板

通常將存儲(chǔ)類,顯示類,AD-DA類的外設(shè)驅(qū)動(dòng)函數(shù)封裝為以下幾個(gè)函數(shù): Void Open(void);

此函數(shù)用于開啟外設(shè),通常函數(shù)體中包涵IO和外設(shè)的初始化 Void Close(void)此函數(shù)用于關(guān)閉外設(shè),特別是一些在休眠下功耗很大的外設(shè),可用mos管控制其Vcc的通斷,以此達(dá)到降低系統(tǒng)功耗的目的

Void Read(unsigned int address,unsigned char *data[],unsigned int count)

此函數(shù)用于讀取數(shù)據(jù),參數(shù)分別為:address,地址,*data[],存放數(shù)據(jù)的數(shù)組,count,要讀取的字節(jié)數(shù)

Void Write(unsigned int address,unsigned char *data[],unsigned int count)此函數(shù)用于寫數(shù)據(jù),參數(shù)功能與讀函數(shù)中相似。

Void control(unsigned char cmd,unsigned char data)此函數(shù)用于控制外設(shè)的工作狀態(tài),如休眠,低功耗等等

3、命名規(guī)則

A、宏定義全部用大寫

如:#define OLED_CS PBout(12)B、驅(qū)動(dòng)函數(shù)名稱大小寫,并且動(dòng)詞放置在末尾如

static long _OLED_Close(void)C、結(jié)構(gòu)體的名稱,結(jié)構(gòu)體名大寫,變量名小寫,“驅(qū)動(dòng)”的首字母大寫

如:struct OLED_DEVICE oledDevice;

4、關(guān)于外設(shè)的數(shù)據(jù)手冊(cè)

外設(shè)的數(shù)據(jù)手冊(cè)應(yīng)該去芯片的官網(wǎng)下載最新版本,特別注意芯片的是否有功耗控制方面的內(nèi)容,

第二篇:面向?qū)ο缶幊痰目偨Y(jié)

面向?qū)ο缶幊痰目偨Y(jié)(理解與看法)面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming,OOP,面向?qū)ο蟪绦蛟O(shè)計(jì))是一種計(jì)算機(jī)編程架構(gòu)。OOP 的一條基本原則是計(jì)算機(jī)程序是由單個(gè)能夠起到子程序作用的單元或?qū)ο蠼M合而成。

OOP 達(dá)到了軟件工程的三個(gè)主要目標(biāo):重用性、靈活性和擴(kuò)展性。為了實(shí)現(xiàn)整體運(yùn)算,每個(gè)對(duì)象都能夠接收信息、處理數(shù)據(jù)和向其它對(duì)象發(fā)送信息。

面向?qū)ο笥腥筇匦?,分別是:封裝、繼承、多態(tài)。封裝是隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外公開接口,控制在程序中屬性的讀和修改的訪問級(jí)別;將抽象得到的數(shù)據(jù)和行為(或功能)相結(jié)合,形成一個(gè)有機(jī)的整體,也就是將數(shù)據(jù)與操作數(shù)據(jù)的源代碼進(jìn)行有機(jī)的結(jié)合,形成“類”,其中數(shù)據(jù)和函數(shù)都是類的成員。目的是增強(qiáng)安全性和簡化編程,使用者不必了解具體的實(shí)現(xiàn)細(xì)節(jié),而只是要通過外部接口,以特定的訪問權(quán)限來使用類的成員。任何類都可以從另外一個(gè)類繼承,即這個(gè)類擁有它所繼承類的所有成員。被繼承的類稱為父類或基類。C# 只支持單繼承,不支持多重繼承,即在C# 中一次只允許繼承一個(gè)類,不能同時(shí)繼承多個(gè)類。在C# 中,接口允許多繼承,可以通過繼承多個(gè)接口來實(shí)現(xiàn)類似于C++中的多重繼承。

多態(tài)是同一個(gè)類在不同場合下表現(xiàn)出不同的行為特征。

使用抽象方法與虛方法都可以實(shí)現(xiàn)多態(tài)性。抽象方法是一個(gè)未實(shí)現(xiàn)的方法,使用abstract關(guān)鍵字修飾,含有抽象方法的類必然是抽象類。抽象方法要在其子方法中通過override關(guān)鍵字重寫。

簡單工廠模式用于在調(diào)用者不知道對(duì)象屬于哪個(gè)自雷的情況下,創(chuàng)建不同的對(duì)象。

第三篇:Java面向?qū)ο缶幊塘?xí)題總結(jié)

第一章

面向?qū)ο箝_發(fā)方法概述

1.面向?qū)ο蟮能浖_發(fā)有哪些優(yōu)點(diǎn)?

1)

把軟件系統(tǒng)看成是各種對(duì)象的集合,這更接近人類的自然思維方式。

2)

軟件需求的變動(dòng)性往往是功能的變動(dòng),而功能的執(zhí)行者——對(duì)象,一般不會(huì)有多大的變化,比結(jié)構(gòu)化更穩(wěn)定。

3)

對(duì)象包括屬性和行為,對(duì)象把數(shù)據(jù)及方法的具體實(shí)現(xiàn)方式一起封裝起來,使得方法與之相關(guān)的數(shù)據(jù)不再分析,提高了每個(gè)子系統(tǒng)的相對(duì)對(duì)立性,從而提高軟件的可維護(hù)性。

4)

支持封裝,抽象,繼承和多態(tài)。提高了軟件的可重用性,可維護(hù)性和可擴(kuò)展性。

2.在軟件系統(tǒng)中,為什么說一個(gè)孤立的不對(duì)外提供任何服務(wù)的對(duì)象是沒有意義的?

1)

每個(gè)對(duì)象都具有特定的功能,相對(duì)于其他對(duì)象而言,它的功能就是為其他對(duì)象提供的服務(wù)。

2)

從使用者角度出發(fā),整個(gè)軟件系統(tǒng)就是一個(gè)服務(wù)的提供者。

3)

在系統(tǒng)內(nèi)部,每個(gè)子系統(tǒng)也都是服務(wù)的提供者,它們其他子系統(tǒng)提供服務(wù)。

4)

因此說一個(gè)孤立的部隊(duì)為提供任何服務(wù)的系統(tǒng)是美歐任何意義的。

3.列舉一些現(xiàn)實(shí)生活中的例子,來說明什么是依賴關(guān)系、什么是聚集關(guān)系,以及什么是關(guān)聯(lián)關(guān)系。

1)

關(guān)聯(lián)關(guān)系:關(guān)聯(lián)是指類之間的特定對(duì)應(yīng)關(guān)系,可以分為單向關(guān)聯(lián)和雙向關(guān)聯(lián),也可以分為一對(duì)一關(guān)聯(lián)、一對(duì)多關(guān)聯(lián)以及多對(duì)多關(guān)聯(lián)。A關(guān)聯(lián)B,是指Class A與Class B之間存在特定的對(duì)應(yīng)關(guān)系。舉例如學(xué)生和老師,訂單和客戶。

2)

依賴關(guān)系:類之間的調(diào)用關(guān)系。A依賴B,Class A訪問Class B提供的服務(wù)。如Panel與Shape的關(guān)系。

3)

聚集關(guān)系:是整體與部分之間的關(guān)系

4.列舉一些顯示生活中的例子,來說明什么是封裝,什么是接口。

1)

接口:對(duì)象中所有向使用者公開的方法的聲明構(gòu)成了對(duì)象的接口。

2)

封裝:隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅僅對(duì)外公開接口。

3)

接口的優(yōu)點(diǎn):a.提高系統(tǒng)之間松散耦合b.提高了系統(tǒng)的可擴(kuò)展性。

4)

封裝的有點(diǎn):

a.便于使用者正確、方便地理解和使用系統(tǒng),防止使用者錯(cuò)誤修改系統(tǒng)的屬性。

b.有助于建立各個(gè)系統(tǒng)之間的松耦合關(guān)系,提高系統(tǒng)的獨(dú)立性。

c.提高軟件的可重用性,沒個(gè)系統(tǒng)都是一個(gè)相對(duì)獨(dú)立的整體,可以在多種環(huán)境中得到重用。

d.降低構(gòu)建大型系統(tǒng)的風(fēng)險(xiǎn),即使整個(gè)系統(tǒng)不成功,個(gè)別的獨(dú)立子系統(tǒng)有可能依然有價(jià)值。

5.抽象的最主要特征是什么?

抽象是指從特定角度出發(fā),從已經(jīng)存在的一些事物中抽取我們所關(guān)注的特性,形成一個(gè)新的事物的思維過程。

6.在建立對(duì)象模型時(shí),要經(jīng)歷哪些抽象思維過程?

1)

從問題領(lǐng)域的事物到軟件模型中對(duì)象的抽象。

2)

從對(duì)象到類的抽象。

3)

從子類到父類的抽象

7.類就是程序員自定義的類型。這種說法是否正確?

不正確,類是一組具有相同屬性和行為的對(duì)象的抽象。類及類的關(guān)系構(gòu)成了對(duì)象模型的主要內(nèi)容。開發(fā)人員需要根據(jù)先識(shí)別對(duì)象,然后再進(jìn)行分類(創(chuàng)建任意的數(shù)據(jù)模型)的思路來建立對(duì)象模型。

8.小王本來體重70kg,經(jīng)過減肥,體重降到45kg,試從這個(gè)問題領(lǐng)域中識(shí)別對(duì)象、類、屬性、狀態(tài)和狀態(tài)的變化。

1)

類:人。

2)

對(duì)象:小王。

3)

屬性:體重。

4)

狀態(tài):70kg。

5)

狀態(tài)的變化:小王的減肥行為導(dǎo)致體重下降。

9.在UML圖中哪些框圖描述了系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu),哪些框圖描述了系統(tǒng)的靜態(tài)結(jié)構(gòu)?

1)

用例圖、類框圖、組件圖、部署圖構(gòu)成了系統(tǒng)的靜態(tài)模型。

2)

狀態(tài)轉(zhuǎn)換圖、時(shí)序圖、協(xié)作圖則構(gòu)成了系統(tǒng)的動(dòng)態(tài)模型。

第二章

第一個(gè)Java應(yīng)用

1.把一個(gè)類放在包里有什么用?

答:把類分包的作用:

(1)

能夠區(qū)分名字相同的類

(2)

有助于實(shí)施訪問權(quán)限控制

(3)

有助于劃分和組織Java應(yīng)用中的各個(gè)類

2.JavaDoc文檔是不是為軟件的終端用戶提供的使用指南?

答:不是的,JavaDoc文檔是供Java開發(fā)人員閱讀的,他們通過JavaDoc文檔來了解其他開發(fā)人員開發(fā)的類的用法。Java開發(fā)人員應(yīng)該養(yǎng)成經(jīng)常閱讀JavaDoc文檔的良好習(xí)慣。

3.對(duì)于com.abc.dollapp.AppMain類,使用以下命令進(jìn)行編譯,編譯出來的.class文件位于什么目錄下?

java –d C:classes –sourcepath C:src C:srccomabcdollappAppMain.java

答:將會(huì)存放在C:classescomabcdollapp下。

4.對(duì)于以上編譯出來的AppMain類,以下哪個(gè)java命令能正確運(yùn)行它?

(a)

java C:classescomabcdollappAppMain.class

(b)

java –classpath C:classes AppMain

(c)

java –classpath C:classescomabcdollapp AppMain

(d)

java –classpath C:classes com.abc.dollapp.AppMain

答:(b)

5.以下哪些main()方法的聲明能夠作為程序的入口方法?

(a)

public static void main()

(b)

public static void main(String[] string)

(c)

public static void main(String args)

(d)

static public int main(String[] args)

(e)

static void main(String[] args)

答:(b),主函數(shù)必須以public static void形式存在,參數(shù)必須為String數(shù)組形式。

6.假定以下程序代碼都分別放在MyClass.java文件中,哪些程序代碼能夠編譯通過?

(a)

import java.awt.*;package Mypackage;

class MyClass{};

(b)

package MyPackage;

import java.awt.*;

class MyClass{};

(c)

/*This is comment*/

package MyPackage;

import java.awt.*;

public class MyClass{};

答:(c),程序順序必須按照import, package, class走,源文件必須以public類型的類命名。

7.對(duì)于以下Myprog類,運(yùn)行命令”java Myprog good morning”,將會(huì)得到打印結(jié)果?

public class Myprog {

public static void main(String argv[])

{

System.out.println(argv[2]);

} }

答:打印結(jié)果為空。argv[0] = “good”, argv[1] = “morning”。

8.下面哪些是Java的關(guān)鍵字?

(a)

default

(b)

NULL

(c)

String

(d)

throws

(e)

long

(f)

true

答:(a),(d),(e),(f),java中所有的關(guān)鍵字都是小寫。

9.當(dāng)AppMain類的main()方法創(chuàng)建了5個(gè)Doll對(duì)象時(shí),運(yùn)行時(shí)數(shù)據(jù)區(qū)的數(shù)據(jù)如何分布的?參考2.4節(jié)的圖2-13,畫出此時(shí)運(yùn)行時(shí)數(shù)據(jù)區(qū)的狀態(tài)圖。

運(yùn)行時(shí)數(shù)據(jù)區(qū)(內(nèi)存)

Java棧區(qū)

執(zhí)行main()方法的主線程的方法調(diào)用棧

局部變量beibei

局部變量jingjing

局部變量huanhuan

局部變量yingying

局部變量nini

堆區(qū)

Doll實(shí)例

name:貝貝

Doll實(shí)例

name:晶晶

Doll實(shí)例

name:歡歡

Doll實(shí)例

name:迎迎

Doll實(shí)例

name:妮妮

方法區(qū)

Doll類型信息

AppMain類型信息

(包含main()方法信息)

10.下面哪些是合法的Java標(biāo)識(shí)符?

(a)

#_pound

(b)

_underscore

(c)

5Interstate

(d)

Interstate5

(e)

_5_

(f)

class

答:(b),(d),(e)標(biāo)識(shí)符命名規(guī)則如下:

(1)

標(biāo)識(shí)符首字母必須為字母、下劃線“_”、美元“$”、人民幣“¥”(2)

標(biāo)識(shí)符由數(shù)字、大寫字母、小寫字母、下劃線以及美元等組成

(3)

不能把關(guān)鍵字和保留字作為標(biāo)識(shí)符

(4)

標(biāo)識(shí)符沒有長度的限制

(5)

標(biāo)識(shí)符是大小寫敏感的第三章

數(shù)據(jù)類型和變量

1.對(duì)于以下程序,運(yùn)行“java Abs”,將得到什么打印結(jié)果?

public class Abs

{

static int a = 0x11;

//十六進(jìn)制

static int b = 0011;

//八進(jìn)制

static int c = 'u0011';

//十六進(jìn)制數(shù)據(jù)的Unicode字符編碼

static int d = 011;

//八進(jìn)制

/**

* @param args

*/

public static void main(String[] args)

{

System.out.println(“a=”+a);

System.out.println(“b=”+b);

System.out.println(“c=”+c);

System.out.println(“d=”+d);

} }

答:輸出如下

a=17 b=9 c=17 d=9

2.以下哪段代碼能正確編譯通過?

(a)

char a = ?a?;

char b = 1;

char c = 08;

(b)

int a = ?a?;

(c)

long a =?u00FF?;

(d)

char a = ?u0FF?;

(e)

char d = “d”;

答:(b)、(c)能通過編譯。(a)中“char c=08”將int賦值給char需要部分強(qiáng)制轉(zhuǎn)換,“char c=8”就正確;(d)中unicode編碼錯(cuò)誤,java采用的是UCS-2編碼,共16位;(e)字符賦值是使用單引號(hào),字符串String賦值時(shí)才使用雙引號(hào)。

3.下面哪些代碼能編譯通過?

(a)

short myshort=99S;

(b)

String name = ?Excellent tutorial Mr Green?;(c)

char c = 17c;

(d)

int z = 015;

答:(d)可以編譯通過。(a)中char賦值給short需要強(qiáng)制轉(zhuǎn)換;(b)中String類型賦值用雙引號(hào);(c)中int賦值給char需要部分強(qiáng)制轉(zhuǎn)換。

4.字符“A”的Unicode字符編碼為65.下面哪些代碼正確定義了一個(gè)代表字符“A”的變量?

(a)

Char ch=65;

(b)

Char ch=?65?;

(c)

Char ch =?u0041?;

(d)

Char ch=?A?;

(e)

Char ch =”A”

答:(c)、(d)可以得到”A”。(b)的輸出為5,其他無法編譯通過。

5.以下代碼共創(chuàng)建了幾個(gè)對(duì)象?

String s1=new String(“hello”);

String s2=new String(“hello”);

String s3=s1;

String s4=s2;

答:共創(chuàng)建了2個(gè)對(duì)象。棧區(qū)4個(gè)局部變量分別引用了堆區(qū)的2個(gè)實(shí)例,而2個(gè)實(shí)例又引用了工作區(qū)的同一個(gè)類。

6.以下代碼能否編譯通過?假如能編譯通過,運(yùn)行時(shí)將得到什么打印結(jié)果?

class Test {

static int myArg = 1;

public static void main(String[] args)

{

Int myArg;

System.out.println(myArg);

} }

答:無法編譯通過,因?yàn)榫植孔兞縨yArg聲明之后Java虛擬機(jī)就不會(huì)自動(dòng)給它初始化為默認(rèn)值,若在使用前未被初始化,編譯會(huì)報(bào)錯(cuò)。

7.對(duì)于以下程序,運(yùn)行“java Mystery Mighty Mouse”,將得到什么打印結(jié)果?

public class Mystery

{

public static void main(String[] args)

{

Changer c = new Changer();

c.method(args);

System.out.println(args[0]+“ ”+args[1]);

}

static class Changer

{

void method(String[] s)

{

String temp = s[0];

s[0] = s[1];

s[1] = temp;

}

} }

答:打印結(jié)果為“Mighty Mystery”

8.對(duì)于以下程序,運(yùn)行“java Pass”,將得到什么打印結(jié)果?

public class Pass

{

static int j = 20;

public static void main(String[] args)

{

int i=10;

Pass p = new Pass();

p.amethod(i);

System.out.println(“i=”+i);

System.out.println(“j=”+j);

}

public void amethod(int x)

{

x*=2;

j*=2;

} }

答:打印結(jié)果是

i=10 j=40

其中“int x”是傳參,作用域僅在amethod之中。

第四章 操作符

1.以下哪些程序代碼能夠編譯通過?

(a)

int i=0;if(i){

System.out.println(“hello”);}

(b)

boolean b1=true;

boolean b2=true;

if(b1==b2){

System.out.println(“So true”);}

(c)

int i=1;

int j=2;

if(i==1||j==i){

System.out.println(“ok”);}

(d)

int i=1;

int j=2;

if(i==1&|j==i){

System.out.println(“ok”);}

答:(b)、(c)能編譯通過。(a)中int不能作為boolean出現(xiàn),(d)中不能出現(xiàn)&|該操作符。

2.運(yùn)行以下程序,將得到什么打印結(jié)果?

System.out.println(-1>>>1);

System.out.println(-1>>1);

System.out.println(2>>1);

System.out.println(1<<<1);

答:>>>是邏輯右移位操作符,也稱不帶符號(hào)右移位操作符,在移位的過程中二進(jìn)制數(shù)開頭填0;>>是右移位操作符,也稱帶符號(hào)右移位操作符,舍棄末尾,在開頭填符號(hào)位;<<<操作符不存在;

11111111 11111111 11111111 11111111

-1>>>1

01111111 11111111 11111111 11111111

11111111 11111111 11111111 11111111

-1>>1

11111111 11111111 11111111 11111111

00000000 00000000 00000000 00000010

2>>1

00000000 00000000 00000000 00000001

2147483647-1 1

3.以下temp變量最終取值是什么?

long temp =(int)3.9;

temp %= 2;

答:取值為1。

4.以下代碼能否編譯通過?假如能編譯通過,運(yùn)行時(shí)將得到什么打印結(jié)果?

if(5 & 7 > 0 && 5 | 2)System.out.println(“true”);

答:int型不能作為boolean型出現(xiàn)。

5.以下代碼能否編譯通過?假如編譯通過,運(yùn)行時(shí)將得到什么打印結(jié)果?

int output=10;

boolean b1 = false;

if((b1==true)&&((output+=10)==20)){

System.out.println(“We are equal”+output);} else {

System.out.println(“Not equal!”+output);}

答:Not equal!10

6.以下代碼能否編譯通過?假如能編譯通過,運(yùn)行時(shí)將得到什么打印結(jié)果?

int output=10;

boolean b1 = false;

if((b1==true)&((output+=10)==20)){

System.out.println(“We are equal”+output);} else {

System.out.println(“Not equal!”+output);}

答:Not equal!20

7.對(duì)于以下聲明:

String s1=new String(“Hello”);

String s2=new String(“there”);

String s3=new String();

下面哪些是合法的操作?

(a)

s3=s1+s2;

(b)

s3=s1-s2;

(c)

s3=s1&s2;

(d)

s3=s1&&s2;

答:(a)是合法操作。除了“+”能用于字符串的連接以外,其他操作符(如“-”、“&”、“&&”等)都不支持String類型的操作元。

第五章

流程控制

1.運(yùn)行以下代碼,將得到什么打印結(jié)果?

int i = 3;

int j = 0;

double k = 3.2;

if(i < k)

if(i == j)

System.out.println(i);

else

System.out.println(j);

else

System.out.println(k);

答:0

2.以下代碼能否編譯通過?假如能編譯通過,運(yùn)行時(shí)將得到什么打印結(jié)果?

int i = 4;

switch(i){

default:

System.out.println(“default”);

case 0:

System.out.println(“zero”);

break;

case 1:

System.out.println(“one”);

case 2:

System.out.println(“two”);}

答:可以編譯通過,打印結(jié)果是:

default

zero

分析:default可以放在任何位置上,一旦符合一個(gè)case即從頭執(zhí)行到尾,不再判斷case。

3.以下哪些是合法的

(a)

int i;for(i=5, int j=10;i<10;j--){}

(b)

int i,j;for(i=0, j=10;i<10, j>0;i++, j--){}

(c)

int i,k;for(i=0, k=9;(i<10 && k>0);i++, k--){}

(d)

int i,j;for(i=0;j=10;i<10;i++,j--){} 答:(a)for語句中int定義要放在開頭。編譯不通過。

(b)循環(huán)判斷語句不可以用逗號(hào)連接。編譯不通過。

(c)合法。

(d)分號(hào)只能有2個(gè)。

4.運(yùn)行以下代碼,將得到什么打印結(jié)果?

int i = 1;

switch(i){

default:

System.out.println(“default”);

case 0:

System.out.println(“zero”);

break;

case 1:

System.out.println(“one”);

case 2:

System.out.println(“two”);}

答:分析同1,運(yùn)行結(jié)果如下:

one

two

5.以下哪些代碼合法?

(a)

float x=1;

switch(x){

case 1;

System.out.println(“Got a 1”);

}

(b)

long x=1;

switch(x){

case 1;

System.out.println(“Got a 1”);

}

(c)

byte x=1;

switch(x){

case 1/1;

System.out.println(“Got a 1”);

}

(d)

int x=1;

int c=1;

switch(c){

case x;

System.out.println(“Got a 1”);}

(e)

short x=1;

switch(x){

case 3.2/2;

System.out.println(“Got a 1”);

}

(f)

short x=1;

switch(x){

case 1,2,3;

System.out.println(“Got a 1”);

}

答:只有(c)是合法的。

6.以下代碼能否編譯通過?假如能編譯通過,運(yùn)行時(shí)將得到什么打印結(jié)果?

for(int a=0, b=0;a<2;b=++a, System.out.println(“b=”+b)){

System.out.println(“a=”+a);}

答:可以通過編譯,打印結(jié)果:

a=0 b=1 a=1 b=2

7.以下代碼能否編譯通過?假如能編譯通過,運(yùn)行時(shí)將得到什么打印結(jié)果?

int x=0;one:

while(x<10)

{

two:

System.out.println(++x);

if(x>3)

break two;

}

答:不能通過編譯。

第四篇:使用java實(shí)現(xiàn)面向?qū)ο缶幊炭偨Y(jié)

第一章:抽象和封裝

1,為什么使用面向?qū)ο?/p>

1.1:萬事萬物皆對(duì)象,面向?qū)ο缶褪遣捎谩艾F(xiàn)實(shí)模擬”的方法設(shè)計(jì)和開發(fā)程序。

2,使用面向?qū)ο筮M(jìn)行設(shè)計(jì)

2.1:面向?qū)ο笤O(shè)計(jì)三部曲

1,發(fā)現(xiàn)類。

2,發(fā)現(xiàn)類的屬性。

3,發(fā)現(xiàn)類的方法。

經(jīng)驗(yàn):在需求中找出名詞的方式確定類和屬性,找出動(dòng)詞的方式確定方法。

3,創(chuàng)建類的對(duì)象

1,通過構(gòu)造方法來創(chuàng)建對(duì)象

2,通過對(duì)象名.屬性名的方式調(diào)用屬性。

3,通過對(duì)象名.方法名的方式調(diào)用方法。

4,Static可以用來修飾屬性,方法和代碼塊。Static修飾的變

量屬于這個(gè)類所有。即由這個(gè)類創(chuàng)建的所有對(duì)象共有同一個(gè)static變量。類屬性,類方法可以通過類名和對(duì)象名訪問,勢力屬性,實(shí)例方法只能通過對(duì)象名訪問。

5,在方法里不可以定義static變量,類變量不能是局部變量。6,構(gòu)造函數(shù)的重載

1,構(gòu)造方法的名字和類名相同,沒有返回值類型。構(gòu)造

方法的作用主要就是在創(chuàng)建對(duì)象是執(zhí)行一些初始化操作,賦值。

2,在沒有給類提供任何構(gòu)造方法時(shí),系統(tǒng)會(huì)提供一個(gè)無

參的方法體為空的默認(rèn)構(gòu)造方法。一旦提供了自定義構(gòu)造方法,系統(tǒng)將不會(huì)提供這個(gè)默認(rèn)構(gòu)造方法,如果要使用她,必須手動(dòng)添加。

3,如果同一個(gè)類中包含了兩個(gè)或兩個(gè)以上方法,它們的方法名相同,方法參數(shù)個(gè)數(shù)或參數(shù)類型不同,則稱該方法被重載。成員方法和構(gòu)造方法都可以重載。

4,構(gòu)造方法沒有返回值類型。如果有,就不是構(gòu)造方法,而是構(gòu)造方法同名的成員方法。

5,封裝

1,封裝是類的三大特性之一,就是將類的狀態(tài)信息隱

藏在內(nèi)部。

2,封裝的具體步驟:為每個(gè)屬性創(chuàng)建一對(duì)一賦值,在賦值方法中,加入對(duì)屬性的存取控制語句。

3,隱藏類的實(shí)現(xiàn)細(xì)節(jié),讓使用者只能通過程序員規(guī)定的方法來訪問數(shù)據(jù),可以方便地加入存取控制語句,限制不合理操作。

第五篇:java語言深入:究竟什么叫面向接口編程

Java:Java語言深入:究竟什么叫面向接口編程

[ 來源:Java | 作者:Java | 時(shí)間:2007-7-20 | 去論壇]

在一個(gè)面向?qū)ο蟮南到y(tǒng)中,系統(tǒng)的各種功能是由許許多多的不同對(duì)象協(xié)作完成的。在這種情況下,各個(gè)對(duì)象內(nèi)部是如何實(shí)現(xiàn)自己的對(duì)系統(tǒng)設(shè)計(jì)人員來講就不那么重要了;而各個(gè)對(duì)象之間的協(xié)作關(guān)系則成為系統(tǒng)設(shè)計(jì)的關(guān)鍵。小到不同類之間的通信,大到各模塊之間 的交互,在系統(tǒng)設(shè)計(jì)之初都是要著重考慮的,這也是系統(tǒng)設(shè)計(jì)的主要工作內(nèi)容。面向接口編程我想就是指按照這種思想來編程吧!實(shí)際上,在日常工作中,你已經(jīng)按 照接口編程了,只不過如果你沒有這方面的意識(shí),那么你只是在被動(dòng)的實(shí)現(xiàn)這一思想;表現(xiàn)在頻繁的抱怨別人改的代碼影響了你(接口沒有設(shè)計(jì)到),表現(xiàn)在某個(gè)模 塊的改動(dòng)引起其他模塊的大規(guī)模調(diào)整(模塊接口沒有很好的設(shè)計(jì))等等。

Booch先生那天談到Interaction Designer,它就是指做這類設(shè)計(jì)的人,只不過層次更高一些。我想目前我們的軟件設(shè)計(jì)隊(duì)伍中,這類人是最缺乏的人才之一。非接口編程?是不是就是面向過程的編程思想?

1.關(guān)于接口的理解。

接口從更深層次的理解,應(yīng)是定義(規(guī)范,約束)與實(shí)現(xiàn)(名實(shí)分離的原則)的分離。

我們?cè)谝话銓?shí)現(xiàn)一個(gè)系統(tǒng)的時(shí)候,通常是將定義與實(shí)現(xiàn)合為一體,不加分離的,我認(rèn)為最為理解的系統(tǒng)設(shè)計(jì)規(guī)范應(yīng)是所有的定義與實(shí)現(xiàn)分離,盡管這可能對(duì)系統(tǒng)中的某些情況有點(diǎn)繁煩。

接口的本身反映了系統(tǒng)設(shè)計(jì)人員對(duì)系統(tǒng)的抽象理解。

接口應(yīng)有兩類:第一類是對(duì)一個(gè)體的抽象,它可對(duì)應(yīng)為一個(gè)抽象體(abstract class);

第二類是對(duì)一個(gè)體某一方面的抽象,即形成一個(gè)抽象面(interface);

一個(gè)體有可能有多個(gè)抽象面。

抽象體與抽象面是有區(qū)別的。

2.設(shè)計(jì)接口的另一個(gè)不可忽視的因素是接口所處的環(huán)境(context,environment),系統(tǒng)論的觀點(diǎn):環(huán)境是系統(tǒng)要素所處的空間與外部影響 因素的總和。任何接口都是在一定的環(huán)境中產(chǎn)生的。因此環(huán)境的定義及環(huán)境的變化對(duì)接口的影響是不容忽視的,脫離原先的環(huán)境,所有的接口將失去原有的意義。

3.按照組件的開發(fā)模型(3C),它們?nèi)呦噍o相成,各司一面,渾然一體,缺一不可。

面向?qū)ο笫侵?,我們考慮問題時(shí),以對(duì)象為單位,考慮它的屬性及方法

面向過程是指,我們考慮問題時(shí),以一個(gè)具體的流程(事務(wù)過程)為單位,考慮它的實(shí)現(xiàn)

接口設(shè)計(jì)與非接口設(shè)計(jì)是針對(duì)復(fù)用技術(shù)而言的,與面向?qū)ο螅ㄟ^程)不是一個(gè)問題

我認(rèn)為:UML里面所說的interface是協(xié)議的另一種說法。并不是指com的interface,CORBA的interface,Java的interface,Delphi的interface,人機(jī)界面的interface或NIC的interface。

在具體實(shí)現(xiàn)中,是可以把UML的interface實(shí)現(xiàn)為語言的interface,分布式對(duì)象環(huán)境的interface或其它什么 interface,但就理解UML的interface而言,指的是系統(tǒng)每部分的實(shí)現(xiàn)和實(shí)現(xiàn)之間,通過interface所確定的協(xié)議來共同工作。

所以我認(rèn)為,面向interface編程,原意是指面向抽象協(xié)議編程,實(shí)現(xiàn)者在實(shí)現(xiàn)時(shí)要嚴(yán)格按協(xié)議來辦。也就是Bill Joy同志說的,一邊翻 rfc,一邊寫代碼的意思。面向?qū)ο缶幊淌侵该嫦虺橄蠛途呦蟆3橄蠛途呦笫敲艿慕y(tǒng)一體,不可能只有抽象沒有具象。一般懂得抽象的人都明白這個(gè)道理。但 有的人只知具象卻不知抽象為何物。

所以只有interface沒有實(shí)現(xiàn),或只有實(shí)現(xiàn)而沒有interface者是沒有用的,反OO的。

所以還是老老實(shí)實(shí)面向?qū)ο缶幊?,面向協(xié)議編程,或者什么都不面向,老老實(shí)實(shí)編程。

但是我很討厭討論這樣的術(shù)語,不如我們談?wù)勈裁唇忻嫦蝾I(lǐng)導(dǎo)的編程?面向用戶的編程?領(lǐng)導(dǎo)和用戶有時(shí)都很BT,我們就面向BT編程?

下載C語言面向?qū)ο缶幊虒W(xué)習(xí)筆記word格式文檔
下載C語言面向?qū)ο缶幊虒W(xué)習(xí)筆記.doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

主站蜘蛛池模板: 国产熟妇与子伦hd| 西西人体444www高清大胆| 18禁超污无遮挡无码免费动态图| 成本人妻片无码中文字幕免费| 国产乱色国产精品免费视频| 国产va在线观看免费| 久久久久麻豆v国产精华液好用吗| 日韩无套内射视频6| 人妻熟妇乱又伦精品hd| 起碰免费公开97在线视频| 亚洲国产福利成人一区| 美女视频黄又黄又免费| 亚洲日韩一区精品射精| 亚洲精品无码日韩国产不卡av| 久久天天躁夜夜躁狠狠躁综合| av一本久道久久综合久久鬼色| 精品人妻人人做人人爽夜夜爽| 国产精品久久二区二区| 久久婷婷综合缴情亚洲狠狠_| 亚洲自偷自偷图片高清| 中文字幕av无码一区二区蜜芽三区| 狠狠综合久久久久综合网| 天天在线看无码av片| 99精品人妻少妇一区二区| 国内大量揄拍人妻在线视频| 免费看久久妇女高潮a| 日日摸日日踫夜夜爽无码| 欧美婷婷六月丁香综合色| 成人福利国产午夜av免费不卡在线| 国产精品一久久香蕉国产线看观看| 一本一道久久综合久久| 国产内射合集颜射| 日韩a无v码在线播放| 日本久久久久久久做爰片日本| av边做边流奶水无码免费| 秋霞av无码一区二区三区试看| 国产福利萌白酱精品一区| 人人妻人人妻人人片av| 99视频在线精品国自产拍| 中文字幕av久久激情亚洲精品| 国产色综合天天综合网|