日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java基础01 从HelloWorld到面向对象

發(fā)布時(shí)間:2025/3/17 java 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java基础01 从HelloWorld到面向对象 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉(zhuǎn)載,也請(qǐng)保留這段聲明。謝謝!

?

Java是完全面向?qū)ο蟮恼Z(yǔ)言。Java通過(guò)虛擬機(jī)的運(yùn)行機(jī)制,實(shí)現(xiàn)“跨平臺(tái)”的理念。我在這里想要呈現(xiàn)一個(gè)適合初學(xué)者的教程,希望對(duì)大家有用。

?

"Hello World!"

先來(lái)看一個(gè)HelloWorld.java程序。這個(gè)程序在屏幕上打印出一串字符"Hello World!":

public class HelloWorld {public static void main(String[] args){System.out.println("Hello World!");} }

程序中包括Java的一些基本特征:

  • 類(lèi)(class):上面程序定義了一個(gè)類(lèi)HelloWorld,該類(lèi)的名字與.java文件的名字相同。
  • 方法(method):類(lèi)的內(nèi)部定義了該類(lèi)的一個(gè)方法main。
  • 語(yǔ)句(statement):真正的“打印”功能由一個(gè)語(yǔ)句實(shí)現(xiàn),即:?System.out.println("Hello World!");

?

下面兩點(diǎn)有關(guān)Java的書(shū)寫(xiě)方式:

  • Java中的語(yǔ)句要以;結(jié)尾 (與C/C++相同)。
  • 用花括號(hào){}來(lái)整合語(yǔ)句,形成程序塊。通過(guò)程序塊,我們可以知道程序的不同部分的范圍,比如類(lèi)從哪里開(kāi)始,到哪里結(jié)束。

?

編譯與運(yùn)行

Java程序要經(jīng)過(guò)編譯器編譯才能執(zhí)行。在Linux或Mac下,可以下載安裝Java JDK。

?

使用javac來(lái)編譯。在命令行中輸入下面語(yǔ)句編譯:

$javac HelloWorld.java

當(dāng)前路徑下,將有一個(gè)名為HelloWorld.class的文件生成。

?

使用java命令來(lái)運(yùn)行。Java會(huì)搜尋該類(lèi)中的main方法,并執(zhí)行。

$java HelloWorld

?

?

變量

計(jì)算機(jī)語(yǔ)言通常需要在內(nèi)存中存放數(shù)據(jù),比如C語(yǔ)言中的變量,Java也有類(lèi)似的變量。Java和C語(yǔ)言都是靜態(tài)類(lèi)型的語(yǔ)言。在使用變量之前,要聲明變量的類(lèi)型。

?

變量(variable)占據(jù)一定的內(nèi)存空間。不同類(lèi)型的變量占據(jù)不同的大小。Java中的變量類(lèi)型如下:

????????? 存儲(chǔ)大小???? 例值???? 注釋

byte????? 1byte??????? 3????? 字節(jié)

int?????? 4bytes?????? 3????? 整數(shù)

short???? 2bytes?????? 3????? 短整數(shù)

long????? 8bytes?????? 3????? 長(zhǎng)整數(shù)

float???? 4bytes???? 1.2????? 單精度浮點(diǎn)數(shù)

double??? 8bytes???? 1.2????? 雙精度浮點(diǎn)數(shù)

char????? 2bytes???? 'a'????? 字符

boolean?? 1bit????? true????? 布爾值

?

在Java中,變量需要先聲明(declare)才能使用。在聲明中,我說(shuō)明變量的類(lèi)型,賦予變量以特別名字,以便在后面的程序中調(diào)用它。你可以在程序中的任意位置聲明變量。 比如:

public class Test {public static void main(String[] args){System.out.println("Declare in the middle:");int a;a = 5;System.out.println(a); // print an integer } }

上面a是變量名。可以在聲明變量的同時(shí),給變量賦值,比如 int a = 5;

*** “變量”的概念實(shí)際上來(lái)自于面向過(guò)程的編程語(yǔ)言。在Java中,所謂的變量實(shí)際上是“基本類(lèi)型” (premitive type)。我們將在類(lèi)的講解中更多深入。

?

上面的程序還可以看到,Java中,可用//引領(lǐng)注釋。

?

數(shù)組

Java中有數(shù)組(array)。數(shù)組包含相同類(lèi)型的多個(gè)數(shù)據(jù)。我用下面方法來(lái)聲明一個(gè)整數(shù)數(shù)組:

int[] a;

?

在聲明數(shù)組時(shí),數(shù)組所需的空間并沒(méi)有真正分配給數(shù)組。我可以在聲明的同時(shí),用new來(lái)創(chuàng)建數(shù)組所需空間:

int[] a = new int[100];

這里創(chuàng)建了可以容納100個(gè)整數(shù)的數(shù)組。相應(yīng)的內(nèi)存分配也完成了。

?

我還可以在聲明的同時(shí),給數(shù)組賦值。數(shù)組的大小也同時(shí)確定。

int[] a = new int[] {1, 3, 5, 7, 9};

?

使用int[i]來(lái)調(diào)用數(shù)組的i下標(biāo)元素。i從0開(kāi)始。

其他類(lèi)型的數(shù)組與整數(shù)數(shù)組相似。

?

表達(dá)式

表達(dá)式是變量、常量和運(yùn)算符的組合,它表示一個(gè)數(shù)據(jù)。1 + 1是常見(jiàn)的表達(dá)式。再比如:

public class Test {public static void main(String[] args){System.out.println("Declare in the middle:");int a;a = 5 + 1;System.out.println(a); // print an integer } }

上面的5 + 1也是一個(gè)表達(dá)式,等于6。?

?

數(shù)學(xué)表達(dá)式

數(shù)學(xué)運(yùn)算,結(jié)果為一個(gè)數(shù)值

1 + 2????????????????? 加法

4 - 3.4??????????????? 減法

7 * 1.5??????????????? 乘法

3.5 / 7??????????????? 除法

7 % 2????????????????? 求余數(shù)

?

關(guān)系表達(dá)式

判斷表達(dá)式是否成立。即一個(gè)boolean值,真假

a?> 4.2????????? ?? ?? 大于

3.4 >= b ??????????? ? 大于等于

1.5 < 9??????????????? 小于

6 <= 1???? ? ? ? ? ? ? 小于等于

2 == 2???? ? ? ? ? ? ? 等于

2 != 2???????????????? 不等于

?

布林表達(dá)式

兩個(gè)boolean值的與、或、非的邏輯關(guān)系

true && false????????? and

(3 > 1) || (2 == 1)??? or

!true????????????????? not

?

位運(yùn)算

對(duì)整數(shù)的二進(jìn)制形式逐位進(jìn)行邏輯運(yùn)算,得到一個(gè)整數(shù)

&????????????????????? and

|????????????????????? or

^????????????????????? xor

~????????????????????? not

5 << 3 ??????????????? 0b101 left shift 3 bits

6 >> 1 ??????????????? 0b110 right shift 1 bit

?

還有下列在C中常見(jiàn)的運(yùn)算符,我會(huì)在用到的時(shí)候進(jìn)一步解釋:

m++??????????????????? 變量m加1

n--??????????????????? 變量n減1

condition ? x1 : x2?? condition為一個(gè)boolean值。根據(jù)condition,取x1或x2的值

?

控制結(jié)構(gòu)

Java中控制結(jié)構(gòu)(control flow)的語(yǔ)法與C類(lèi)似。它們都使用{}來(lái)表達(dá)隸屬關(guān)系。

?

選擇 (if)

if (conditon1) {statements;
... }
else if (condition2) {statements;
... }
else {statements;
... }

上面的condition是一個(gè)表示真假值的表達(dá)式。statements;是語(yǔ)句。

?

練習(xí) 寫(xiě)一個(gè)Java程序,判斷2013年是否是閏年。

?

循環(huán) (while)

while (condition) {

??? statements;

}

?

循環(huán) (do... while)

do {

??? statements;

} while(condition);? // 注意結(jié)尾的;

?

循環(huán) (for)

for (initial; condition; update) {

??? statements;

}

?

跳過(guò)或跳出循環(huán)

在循環(huán)中,可以使用

break; // 跳出循環(huán)

continue; // 直接進(jìn)入下一環(huán)

?

練習(xí) 寫(xiě)一個(gè)Java程序,計(jì)算從1加2,加3…… 一直加到999的總和

?

選擇 (switch)

switch(expression) {

??? case 1:

??????? statements;

??????? break;

??? case 2:

??????? statements;

??????? break;

??? ...

??? default:

??????? statements;

??????? break;

}

?

面向?qū)ο?

“對(duì)象”是計(jì)算機(jī)抽象世界的一種方式。“面向?qū)ο蟆笨梢杂煤芏喾绞奖磉_(dá)。下面是一種并不精確,但比較直觀(guān)的理解方式:

  • 世界上的每一個(gè)事物都可以稱(chēng)為一個(gè)對(duì)象(object),比如張三。對(duì)象有身份(Identity)狀態(tài)(State)行為(Behavior)
  • 對(duì)象的狀態(tài)由數(shù)據(jù)成員(data member)表示。數(shù)據(jù)成員又被稱(chēng)作域(field)。我們用其他對(duì)象作為該對(duì)象的數(shù)據(jù)成員。比如一個(gè)表示身高的整數(shù),比如一個(gè)鼻子。
  • 對(duì)象的行為由成員方法(member method)表示。我們簡(jiǎn)稱(chēng)為方法(method)。一個(gè)對(duì)象可以有多個(gè)方法,比如呼吸,睡覺(jué)
  • 對(duì)象可以歸類(lèi)(class),或者說(shuō)歸為同一類(lèi)型(type)。同一類(lèi)型的對(duì)象有相同的方法,有同類(lèi)型的數(shù)據(jù)成員。某個(gè)類(lèi)型的一個(gè)對(duì)象被稱(chēng)為該類(lèi)型的一個(gè)實(shí)例(instance)
  • ?

    類(lèi)與對(duì)象

    ?

    ?

    定義類(lèi)的語(yǔ)法:

    class ClassName

    {

    ??? member1;

    ??? member2;

    ??? ...

    }

    ?

    我們定義一個(gè)human類(lèi):

    class Human {void breath(){System.out.println("hu...hu...");}
    int height; }

    在{}范圍內(nèi),Human類(lèi)有兩個(gè)成員: 一個(gè)數(shù)據(jù)成員height,一個(gè)方法breath()。

    • 數(shù)據(jù)成員height是整數(shù)類(lèi)型,可以用于存儲(chǔ)一個(gè)整數(shù)。
    • 方法代表了對(duì)象所能進(jìn)行的動(dòng)作,也就是計(jì)算機(jī)所能進(jìn)行的操作。方法可以接受參數(shù),并能返回值。在breath()的定義中,breath后面的()中為參數(shù)列表。由于參數(shù)列表為空,所以breath()不接受參數(shù)。在breath()之前的void為返回值的類(lèi)型,說(shuō)明breath不返回值。

    (方法與面向過(guò)程語(yǔ)言中的函數(shù)類(lèi)似)?

    ?

    現(xiàn)在,我們創(chuàng)建對(duì)象aPerson,并調(diào)用對(duì)象的方法breath:

    public class Test {public static void main(String[] args){Human aPerson = new Human();aPerson.breath();
    System.out.println(aPerson.height);}}
    class Human {void breath(){System.out.println("hu...hu...");}int height; }

    在main方法中,使用new關(guān)鍵字創(chuàng)建對(duì)象。即使是來(lái)自同一個(gè)類(lèi)的對(duì)象,各個(gè)對(duì)象占據(jù)的內(nèi)存也不相同,即對(duì)象的身份也不同。

    Human aPerson聲明了aPerson對(duì)象屬于Human類(lèi),即說(shuō)明了對(duì)象的類(lèi)型。

    ?

    對(duì)象建立后,我們可以用 對(duì)象.數(shù)據(jù)成員 來(lái)引用數(shù)據(jù)成員,使用 對(duì)象.方法() 的方式來(lái)調(diào)用方法。正如我們?cè)诤竺娲蛴Person.height。

    ?

    總結(jié)

    Java的許多語(yǔ)法形式與C/C++類(lèi)似,但在細(xì)節(jié)和具體實(shí)現(xiàn)上又有差別,需要小心。

    對(duì)象,類(lèi)

    對(duì)象: 方法,域(數(shù)據(jù)成員)

    Java是完全面向?qū)ο蟮恼Z(yǔ)言。

    ?

    歡迎繼續(xù)閱讀“Java快速教程”系列文章

    ?

    總結(jié)

    以上是生活随笔為你收集整理的Java基础01 从HelloWorld到面向对象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。