欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java基礎之從HelloWorld到面向對象

 更新時間:2021年09月09日 15:16:41   作者:Vamei  
Java是完全面向對象的語言。Java通過虛擬機的運行機制,實現(xiàn)“跨平臺”的理念。本文為通過呈現(xiàn)一個適合初學者的教程,希望對大家有用

1、 "Hello World!"

先來看一個HelloWorld.java程序。這個程序在屏幕上打印出一串字符"Hello World!":

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

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

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

下面兩點有關Java的書寫方式:

  • Java中的語句要以;結尾 (與C/C++相同)。
  • 用花括號{}來整合語句,形成程序塊。通過程序塊,我們可以知道程序的不同部分的范圍,比如類從哪里開始,到哪里結束

2、編譯與運行

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

使用javac來編譯。在命令行中輸入下面語句編譯:

$javac HelloWorld.java

當前路徑下,將有一個名為HelloWorld.class的文件生成。

使用java命令來運行。Java會搜尋該類中的main方法,并執(zhí)行。

$java HelloWorld


3、變量

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

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

在Java中,變量需要先聲明(declare)才能使用。在聲明中,我說明變量的類型,賦予變量以特別名字,以便在后面的程序中調(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是變量名??梢栽诼暶髯兞康耐瑫r,給變量賦值,比如 int a = 5;

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

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

4、數(shù)組

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

int[] a;

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

int[] a = new int[100];

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

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

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

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

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

5、表達式

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

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也是一個表達式,等于6。

5.1 數(shù)學表達式

數(shù)學運算,結果為一個數(shù)值

1 + 2                  加法

4 - 3.4                減法

7 * 1.5                乘法

3.5 / 7                除法

7 % 2                  求余數(shù) 

5.2關系表達式

判斷表達式是否成立。即一個boolean值,真假

a > 4.2                大于

3.4 >= b               大于等于

1.5 < 9                小于

6 <= 1                 小于等于

2 == 2                 等于

2 != 2                 不等于

5.3 布林表達式

兩個boolean值的與、或、非的邏輯關系

true && false          and

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

!true                  not

5.4 位運算

對整數(shù)的二進制形式逐位進行邏輯運算,得到一個整數(shù)

&                      and

|                      or

^                      xor

~                      not

5 << 3                 0b101 left shift 3 bits

6 >> 1                 0b110 right shift 1 bit

還有下列在C中常見的運算符,我會在用到的時候進一步解釋:

m++                    變量m加1

n--                    變量n減1

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

6、控制結構

Java中控制結構(control flow)的語法與C類似。它們都使用{}來表達隸屬關系。

6.1 選擇 (if)

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

上面的condition是一個表示真假值的表達式。statements;是語句。

練習 寫一個Java程序,判斷2013年是否是閏年。

6.2 循環(huán) (while)

while (condition) {

    statements;

}

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

do {

    statements;

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

 

6.4 循環(huán) (for)

for (initial; condition; update) {

    statements;

}

 

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

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

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

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

練習 寫一個Java程序,計算從1加2,加3…… 一直加到999的總和

6.6 選擇 (switch)

switch(expression) {

    case 1:

        statements;

        break;

    case 2:

        statements;

        break;

    ...

    default:

        statements;

        break;

}

 

7、面向對象

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

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

定義類的語法:

class ClassName

{

    member1;

    member2;

    ...

}

 

我們定義一個human類:

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

    int height;
}

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

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

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

現(xiàn)在,我們創(chuàng)建對象aPerson,并調(diào)用對象的方法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關鍵字創(chuàng)建對象。即使是來自同一個類的對象,各個對象占據(jù)的內(nèi)存也不相同,即對象的身份也不同。

Human aPerson聲明了aPerson對象屬于Human類,即說明了對象的類型。

對象建立后,我們可以用 對象.數(shù)據(jù)成員 來引用數(shù)據(jù)成員,使用 對象.方法() 的方式來調(diào)用方法。正如我們在后面打印aPerson.height。

8、總結

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

對象,類

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

Java是完全面向對象的語言。

到此這篇關于Java基礎之從HelloWorld到面向對象的文章就介紹到這了,更多相關Java HelloWorld到面向對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java+Spring+MySql環(huán)境中安裝和配置MyBatis的教程

    Java+Spring+MySql環(huán)境中安裝和配置MyBatis的教程

    這篇文章主要介紹了Java+Spring+MySql環(huán)境中安裝和配置MyBatis的教程,MyBatis一般被用來增強數(shù)據(jù)庫操作,文中對MyBatis的主配置文件有較為詳細的講解,需要的朋友可以參考下
    2016-04-04
  • Spring Boot 2 Thymeleaf服務器端表單驗證實現(xiàn)詳解

    Spring Boot 2 Thymeleaf服務器端表單驗證實現(xiàn)詳解

    這篇文章主要介紹了Spring Boot 2 Thymeleaf服務器端表單驗證實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Java微信退款開發(fā)

    Java微信退款開發(fā)

    這篇文章主要為大家詳細介紹了Java微信退款開發(fā)的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • java求三個數(shù)的最大值的示例分享

    java求三個數(shù)的最大值的示例分享

    這篇文章主要介紹了java求三個數(shù)的最大值的示例分享,需要的朋友可以參考下
    2014-03-03
  • 詳解Spring Cloud中Hystrix 線程隔離導致ThreadLocal數(shù)據(jù)丟失

    詳解Spring Cloud中Hystrix 線程隔離導致ThreadLocal數(shù)據(jù)丟失

    這篇文章主要介紹了詳解Spring Cloud中Hystrix 線程隔離導致ThreadLocal數(shù)據(jù)丟失,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 登錄EasyConnect后無法通過jdbc訪問服務器數(shù)據(jù)庫問題的解決方法

    登錄EasyConnect后無法通過jdbc訪問服務器數(shù)據(jù)庫問題的解決方法

    描述一下近期使用EasyConnect遇到的問題,下面這篇文章主要給大家介紹了關于登錄EasyConnect后無法通過jdbc訪問服務器數(shù)據(jù)庫問題的解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • spring解決循環(huán)依賴的簡單方法

    spring解決循環(huán)依賴的簡單方法

    這篇文章主要給大家介紹了關于spring解決循環(huán)依賴的簡單方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • 詳解Java?ReentrantReadWriteLock讀寫鎖的原理與實現(xiàn)

    詳解Java?ReentrantReadWriteLock讀寫鎖的原理與實現(xiàn)

    ReentrantReadWriteLock讀寫鎖是使用AQS的集大成者,用了獨占模式和共享模式。本文和大家一起理解下ReentrantReadWriteLock讀寫鎖的實現(xiàn)原理,需要的可以了解一下
    2022-10-10
  • Spring多線程事務處理解決方案

    Spring多線程事務處理解決方案

    這篇文章主要介紹了Spring多線程事務處理,本文主要介紹了spring多線程事務的解決方案,心急的小伙伴可以跳過上面的理論介紹分析部分直接看最終解決方案,需要的朋友可以參考下
    2024-03-03
  • 深入解析Java反射之基礎篇

    深入解析Java反射之基礎篇

    JAVA反射機制是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法,這篇文章主要給大家介紹了關于Java反射之基礎篇的相關資料,需要的朋友可以參考下
    2021-11-11

最新評論