最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基礎(chǔ)之從HelloWorld到面向?qū)ο?/h1>
 更新時(shí)間:2021年09月09日 15:16:41   作者:Vamei  
Java是完全面向?qū)ο蟮恼Z(yǔ)言。Java通過(guò)虛擬機(jī)的運(yùn)行機(jī)制,實(shí)現(xiàn)“跨平臺(tái)”的理念。本文為通過(guò)呈現(xiàn)一個(gè)適合初學(xué)者的教程,希望對(duì)大家有用

1、 "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的一些基本特征:

  • 類(class):上面程序定義了一個(gè)類HelloWorld,該類的名字與.java文件的名字相同。
  • 方法(method):類的內(nè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ò)程序塊,我們可以知道程序的不同部分的范圍,比如類從哪里開(kāi)始,到哪里結(jié)束

2、編譯與運(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ì)搜尋該類中的main方法,并執(zhí)行。

$java HelloWorld


3、變量

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

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

在Java中,變量需要先聲明(declare)才能使用。在聲明中,我說(shuō)明變量的類型,賦予變量以特別名字,以便在后面的程序中調(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í)際上是“基本類型” (premitive type)。我們將在類的講解中更多深入。

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

4、數(shù)組

Java中有數(shù)組(array)。數(shù)組包含相同類型的多個(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)始。

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

5、表達(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。

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

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

1 + 2                  加法

4 - 3.4                減法

7 * 1.5                乘法

3.5 / 7                除法

7 % 2                  求余數(shù) 

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

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

a > 4.2                大于

3.4 >= b               大于等于

1.5 < 9                小于

6 <= 1                 小于等于

2 == 2                 等于

2 != 2                 不等于

5.3 布林表達(dá)式

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

true && false          and

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

!true                  not

5.4 位運(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的值

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

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

6.1 選擇 (if)

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

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

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

6.2 循環(huán) (while)

while (condition) {

    statements;

}

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

do {

    statements;

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

 

6.4 循環(huán) (for)

for (initial; condition; update) {

    statements;

}

 

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

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

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

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

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

6.6 選擇 (switch)

switch(expression) {

    case 1:

        statements;

        break;

    case 2:

        statements;

        break;

    ...

    default:

        statements;

        break;

}

 

7、面向?qū)ο?/h2>

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

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

定義類的語(yǔ)法:

class ClassName

{

    member1;

    member2;

    ...

}

 

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

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

    int height;
}

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

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

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

現(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è)類的對(duì)象,各個(gè)對(duì)象占據(jù)的內(nèi)存也不相同,即對(duì)象的身份也不同。

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

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

8、總結(jié)

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

對(duì)象,類

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

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

到此這篇關(guān)于Java基礎(chǔ)之從HelloWorld到面向?qū)ο蟮奈恼戮徒榻B到這了,更多相關(guān)Java HelloWorld到面向?qū)ο髢?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringCLoud搭建Zuul網(wǎng)關(guān)集群過(guò)程解析

    SpringCLoud搭建Zuul網(wǎng)關(guān)集群過(guò)程解析

    這篇文章主要介紹了SpringCLoud搭建Zuul網(wǎng)關(guān)集群過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • C#使用MySQLConnectorNet和MySQLDriverCS操作MySQL的方法

    C#使用MySQLConnectorNet和MySQLDriverCS操作MySQL的方法

    這篇文章主要介紹了C#使用MySQLConnectorNet和MySQLDriverCS操作MySQL的方法,相比普通方法能夠在Windows下簡(jiǎn)化很多操作步驟,需要的朋友可以參考下
    2016-04-04
  • Spring入門(mén)到精通之注解開(kāi)發(fā)詳解

    Spring入門(mén)到精通之注解開(kāi)發(fā)詳解

    Spring是輕代碼而重配置的框架,配置比較繁重,影響開(kāi)發(fā)效率,所以注解開(kāi)發(fā)是一種趨勢(shì)。本文將通過(guò)示例為大家詳細(xì)講講Spring如何實(shí)現(xiàn)注解開(kāi)發(fā),感興趣的可以學(xué)習(xí)一下
    2022-07-07
  • SpringBoot Controller接收參數(shù)的幾種常用方式

    SpringBoot Controller接收參數(shù)的幾種常用方式

    這篇文章主要介紹了SpringBoot Controller接收參數(shù)的幾種常用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Spring?Boot?使用觀察者模式實(shí)現(xiàn)實(shí)時(shí)庫(kù)存管理的步驟

    Spring?Boot?使用觀察者模式實(shí)現(xiàn)實(shí)時(shí)庫(kù)存管理的步驟

    在現(xiàn)代軟件開(kāi)發(fā)中,實(shí)時(shí)數(shù)據(jù)處理非常關(guān)鍵,本文提供了一個(gè)使用SpringBoot和觀察者模式開(kāi)發(fā)實(shí)時(shí)庫(kù)存管理系統(tǒng)的詳細(xì)教程,步驟包括創(chuàng)建項(xiàng)目、定義實(shí)體類、實(shí)現(xiàn)觀察者模式、集成Spring框架、創(chuàng)建RESTful?API端點(diǎn)和測(cè)試應(yīng)用等,這將有助于開(kāi)發(fā)者構(gòu)建能夠即時(shí)響應(yīng)庫(kù)存變化的系統(tǒng)
    2024-09-09
  • 詳解微信小程序 同步異步解決辦法

    詳解微信小程序 同步異步解決辦法

    這篇文章主要介紹了詳解微信小程序 同步異步解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Spring如何集成ibatis項(xiàng)目并實(shí)現(xiàn)dao層基類封裝

    Spring如何集成ibatis項(xiàng)目并實(shí)現(xiàn)dao層基類封裝

    這篇文章主要介紹了Spring如何集成ibatis項(xiàng)目并實(shí)現(xiàn)dao層基類封裝,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 10分鐘帶你徒手寫(xiě)個(gè)Java線程池

    10分鐘帶你徒手寫(xiě)個(gè)Java線程池

    我們自己手動(dòng)實(shí)現(xiàn)的線程池要比Java自身的線程池簡(jiǎn)單的多,我們?nèi)サ袅烁鞣N復(fù)雜的處理方式,只保留了最核心的原理,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-04-04
  • 淺析NIO系列之TCP

    淺析NIO系列之TCP

    NIO即同步非阻塞式IO,它和傳統(tǒng)的BIO比較最大的區(qū)別在于在執(zhí)行accept、connect、read、write操作時(shí)是非阻塞的。很有利于實(shí)現(xiàn)用少量線程來(lái)處理多個(gè)客戶端請(qǐng)求,可以隨時(shí)讓線程切換所處理的客戶端,從而可以實(shí)現(xiàn)高并發(fā)服務(wù)器的開(kāi)發(fā)
    2021-06-06
  • spring boot security 沒(méi)有合適的構(gòu)造器問(wèn)題

    spring boot security 沒(méi)有合適的構(gòu)造器問(wèn)題

    這篇文章主要介紹了spring boot security 沒(méi)有合適的構(gòu)造器問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評(píng)論

昌江| 永仁县| 博湖县| 南江县| 绥阳县| 常德市| 林口县| 和龙市| 收藏| 富源县| 南澳县| 万载县| 永善县| 黑河市| 罗平县| 厦门市| 遵义县| 突泉县| 黎平县| 临朐县| 江城| 宁都县| 平顺县| 柘荣县| 石林| 资溪县| 宜昌市| 洱源县| 邢台县| 溧阳市| 鹤壁市| 桂林市| 绿春县| 浪卡子县| 汕头市| 旬阳县| 西青区| 鲜城| 临湘市| 贵州省| 海南省|