(一)Java 基礎語法

目錄

一. 前言

二. Hello World

三. Java 語法

3.1. 基本語法

3.2.?Java 標識符

3.3.?Java 修飾符

3.4.?Java 變量

3.5.?Java 數組

3.6.?Java 枚舉

3.7.?Java 關鍵字

3.8.?Java 注釋

3.9.?Java 空行

3.10. Java 繼承

3.11. Java 接口(interface)

四. 課后習題


一. 前言

? ?在學習 Java 之前,有必要對 Java 有一個基本的認識和了解,可以參見《探秘 JAVA 誕生之路,引領編程人生的宏偉著作》,此文會對 Java 從誕生到發展到成熟有一個非常細致地介紹。接下來在進行編程之前,需要準備下開發環境的搭建,可以參見《JDK 環境變量設置》,配置好環境變量后,選擇你中意的開發工具如 eclipse、idea 就可以進入愉快地編程世界了。

? ? 一個 Java 程序可以認為是一系列對象的集合,萬事萬物皆對象,而這些對象通過調用彼此的方法來協同工作。下面簡要介紹下類、對象、方法和實例變量的概念:
對象:對象是類的一個實例,有狀態和行為。例如,一條狗是一個對象,它的狀態有:顏色、名字、品種;行為有:搖尾巴、叫、吃等。
類:類是一個模板,它描述一類對象的行為和狀態。
方法:方法就是行為,一個類可以有很多方法。邏輯運算、數據修改以及所有動作都是在方法中完成的。
實例變量:每個對象都有獨特的實例變量,對象的狀態由這些實例變量的值決定。

二. Hello World

? ? 我們開始寫自己的第一個 Java 程序,下面看一個簡單的 Java 示例代碼,它將打印字符串 Hello World:

public class MyFirstJava {/* * 第一個Java程序,它將打印字符串 Hello World*/public static void main(String []args) {System.out.println("Hello World"); // 打印 Hello World}
} 

下面將逐步介紹如何保存、編譯以及運行這個程序:
1. 打開 Notepad,把上面的代碼添加進去;
2. 把文件名保存為:MyFirstJava.java;
3. 打開 cmd 命令窗口,進入目標文件所在的位置,假設是 C:\
4. 在命令行窗口鍵入?javac MyFirstJava.java ?按下回車鍵編譯代碼。如果代碼沒有錯誤,cmd 命令提示符會進入下一行。(假設環境變量都設置好了)。
5. 再鍵入 java MyFirstJava 按下回車鍵就可以運行程序了。

你將會在窗口看到 Hello World:

C:\> javac MyFirstJava.java
C:\> java MyFirstJava
Hello World

三. Java 語法

3.1. 基本語法

編寫 Java 程序時,應注意以下幾點:

  • 大小寫敏感:Java 是大小寫敏感的,這就意味著標識符 Hello 與 hello 是不同的。
  • 類名:對于所有的類來說,類名的首字母應該大寫。如果類名由若干單詞組成,那么每個單詞的首字母應該大寫,例如 MyFirstJavaClass。
  • 方法名:所有的方法名都應該以小寫字母開頭。如果方法名含有若干單詞,則后面的每個單詞首字母大寫。
  • 源文件名:源文件名必須和類名相同。當保存文件的時候,你應該使用類名作為文件名保存(切記 Java 是大小寫敏感的),文件名的后綴為 .java。(如果文件名和類名不相同則會導致編譯錯誤)。
  • 主方法入口:所有的 Java 程序由 ?public static void main(String[] args)? 方法開始執行。

3.2.?Java 標識符

Java 所有的組成部分都需要名字。類名、變量名以及方法名都被稱為標識符。

關于 Java 標識符,有以下幾點需要注意:

  • 所有的標識符都應該以字母(A-Z或者a-z)、美元符($)、或者下劃線(_)開始;
  • 首字符之后可以是字母(A-Z 或者 a-z)、美元符($)、下劃線(_)或數字的任何字符組合;
  • 關鍵字不能用作標識符;
  • 標識符是大小寫敏感的;
  • 合法標識符舉例:age、$salary、_value、__1_value;
  • 非法標識符舉例:123abc、-salary。

3.3.?Java 修飾符

像其他語言一樣,Java 可以使用修飾符來修飾類中方法和屬性。主要有兩類修飾符:

  • 訪問控制修飾符 : default、public、protected、private;
  • 非訪問控制修飾符 : final、abstract、static、synchronized 和 volatile。

在后面的章節中我們會深入討論 Java 修飾符。

3.4.?Java 變量

Java 中主要有如下幾種類型的變量:

  • 局部變量:塊或方法中的變量;
  • 類變量(靜態變量):用 static 修飾的變量;
  • 成員變量(非靜態變量):類中沒有用 static 修飾的變量。

3.5.?Java 數組

數組是儲存在堆上的對象,可以保存多個同類型變量。在后面的章節中,我們將會學到如何聲明、構造以及初始化一個數組。

public void test() {String[] array = new String[2];array[0] = "你好";array[1] = "流華追夢";
}

3.6.?Java 枚舉

Java 5.0 引入了枚舉,枚舉限制變量只能是預先設定好的值。使用枚舉可以減少代碼中的 bug。

例如,我們為果汁店設計一個程序,它將限制果汁為小杯、中杯、大杯。這就意味著它不允許顧客點除了這三種尺寸外的果汁。

class FreshJuice {enum FreshJuiceSize { SMALL, MEDIUM, LARGE }FreshJuiceSize size;
}public class FreshJuiceTest {public static void main(String args[]) {FreshJuice juice = new FreshJuice();juice.size = FreshJuice.FreshJuiceSize.MEDIUM;}
}

注意:枚舉可以單獨聲明或者聲明在類里面。方法、變量、構造函數也可以在枚舉中定義。

3.7.?Java 關鍵字

下表列出了 Java 保留字。這些保留字不能用于常量、變量和任何標識符的名稱。

關鍵字類型描述
abstract類、方法和變量修飾符抽象方法,抽象類的修飾符
assert斷言斷言條件是否滿足
boolean基本類型布爾數據類型
break程序控制跳出循環或者label代碼段
byte基本類型8-bit 有符號數據類型
case程序控制switch語句的一個條件
catch錯誤處理和try搭配捕捉異常信息
char基本類型16-bit Unicode字符數據類型
class類、方法和變量修飾符定義類
const保留關鍵字未使用
continue程序控制不執行循環體剩余部分
default程序控制switch語句中的默認分支
do程序控制循環語句,循環體至少會執行一次
double基本類型64-bit雙精度浮點數
else程序控制if條件不成立時執行的分支
enum枚舉類型
extends類、方法和變量修飾符表示一個類是另一個類的子類
false基本類型假,boolean 變量的兩個合法值之一
final類、方法和變量修飾符表示一個值在初始化之后就不能再改變了
表示方法不能被重寫,或者一個類不能有子類
finally為了完成執行的代碼而設計的,主要是為了程序的健壯性和完整性,無論有沒有異常發生都執行代碼。
float基本類型32-bit單精度浮點數
for程序控制for循環語句
goto保留關鍵字未使用
if程序控制條件語句
implements類、方法和變量修飾符表示一個類實現了接口
import包相關導入類
instanceof測試一個對象是否是某個類的實例
int基本類型32位整型數
interface類、方法和變量修飾符接口,一種抽象的類型,僅有方法和常量的定義
long基本類型64位整型數
native類、方法和變量修飾符表示方法用非java代碼實現
new類、方法和變量修飾符分配新的類實例
null基本類型空,表示無值,不能將 null 賦給原始類型(byte、short、int、long、char、float、double、boolean)變量;
package包相關一系列相關類組成一個包
private訪問控制表示私有字段,或者方法等,只能從類內部訪問
protected訪問控制表示字段只能通過類或者其子類訪問
子類或者在同一個包內的其他類
public訪問控制表示共有屬性或者方法
return程序控制方法返回值
short基本類型16位數字
static類、方法和變量修飾符表示在類級別定義,所有實例共享的
strictfp類、方法和變量修飾符浮點數比較使用嚴格的規則
super變量引用表示基類
switch程序控制選擇語句
synchronized類、方法和變量修飾符表示同一時間只能由一個線程訪問的代碼塊
this變量引用表示調用當前實例
或者調用另一個構造函數
throw錯誤處理拋出異常
throws錯誤處理定義方法可能拋出的異常
transient類、方法和變量修飾符修飾不要序列化的字段
true基本類型真,boolean 變量的兩個合法值中的一個
try錯誤處理表示代碼塊要做異常處理或者和finally配合表示是否拋出異常都執行finally中的代碼
void變量引用標記方法不返回任何值
volatile類、方法和變量修飾符標記字段可能會被多個線程同時訪問,而不做同步
while程序控制while循環

以上就是目前 Java 中 53 個關鍵字的含義,這么多很難一下子全都記住,大家可以收藏起來,在學習的過程中,用的多了,自然而然就能記住了。

3.8.?Java 注釋

類似于 C/C++,Java 也支持單行以及多行注釋。注釋中的字符將被 Java 編譯器忽略。

public class MyFirstJava {/* * 這是第一個Java程序* 它將打印Hello World* 這是一個多行注釋的示例*/public static void main(String[] args) {// 這是單行注釋的示例/* 這個也是單行注釋的示例 */System.out.println("Hello World"); }
} 

3.9.?Java 空行

空白行,或者只有注釋的行,Java 編譯器都會忽略掉。

3.10. Java 繼承

? ? 在 Java 中,一個類可以由其他類派生。如果你要創建一個類,而且已經存在一個類具有你所需要的屬性或方法,那么你可以將新創建的類繼承該類。Java 類只能單繼承,也就是說只能有一個父類。

? ? 利用繼承的方法,可以重用已存在類的方法和屬性,而不用重寫這些代碼。被繼承的類稱為父類或超類(super class),派生類稱為子類(subclass)。

public class Animal {private String type;private int age;public void sound() {System.out.println("Animal make a sound");}
}public class Dog extends Animal {public void sound() {System.out.println("dog's bark");}
}

3.11. Java 接口(interface)

? ? 在 Java 中,接口可理解為對象間相互通信的協議。接口在繼承中扮演著很重要的角色。接口只定義派生要用到的方法,但是方法的具體實現完全取決于派生類。Java 接口可以多繼承。

public interface Animal {void sound();
}public class Dog implements Animal {private String type;private int age;public void sound() {System.out.println("dog's bark");}
}

四. 課后習題

1. 定義一個類,它包含成員變量和方法,并且給成員變量和方法添加注釋。

2. 定義一個有繼承的類,看看父類和子類之間有什么差別。

3. 定義一個接口,且有多個實現類。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213245.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213245.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213245.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle(2-14)User-Managed Incomplete Recovery

文章目錄 一、基礎知識1、Incomplete Recovery Overview 不完全恢復概述2、Situations Requiring IR 需要不完全恢復的情況3、Types of IR 不完全恢復的類型4、IR Guidelines 不完全恢復指南5、User-Managed Procedures 用戶管理程序6、RECOVER Command Overview 恢復命令概述7…

算法訓練營Day8(字符串)

344.反轉字符串 344. 反轉字符串 - 力扣&#xff08;LeetCode&#xff09; class Solution {public void reverseString(char[] s) {for(int i 0,j s.length-1;i< s.length/2 ; i,j--){swap(s,i,j);}}public void swap(char[] s,int i,int j ){char temp s[i];s[i] s[j]…

Python數據科學視頻講解:Python注釋

2.3 Python注釋 視頻為《Python數據科學應用從入門到精通》張甜 楊維忠 清華大學出版社一書的隨書贈送視頻講解2.3節內容。本書已正式出版上市&#xff0c;當當、京東、淘寶等平臺熱銷中&#xff0c;搜索書名即可。內容涵蓋數據科學應用的全流程&#xff0c;包括數據科學應用和…

20231210原始編譯NanoPC-T4(RK3399)開發板的Android10的SDK

20231210原始編譯NanoPC-T4(RK3399)開發板的Android10的SDK 2023/12/10 17:27 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ mkdir nanopc-t4 rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ rootrootrootroot-X99-Turbo:~$ cd nanopc-t4/ …

python4E 之 Dict 找到兩個不同索引但都需要對應的值。

找到兩個不同索引但都需要&#xff0c;對應的值。 df pd.DataFrame(np.random.randint(1, 10, [3,3]), columns list(ABC)) 通過 dict 制造key index_htable{} for _,row in idc.iterrows(): #按行循環 key str(row[u股票代碼]) | str(row[u日期]) #根據不同 的索引…

45.0/HTML 簡介(詳細版)

目錄 45.1 互聯網簡介 45.2 網頁技術與分類 45.3 HTML 簡介 45.3.1 什么是 HTML?(面試題) 45.3.2 HTML 文件結構 45.3.3 HTML 語法 45.3.4 實例演練步驟(面試題) 45.4 head 中的常用標簽 45.4.1 title 標記 45.4.2 meta 標記 45.4.3 45.4.4 45.4.4(面試題)總結: 45…

【AIE】AIE微信合集

AIE微信合集 AIE(1) 對于Versal&#xff0c;我們從系統角度看&#xff0c;可將其分為3個Domain&#xff1a;AIE、PS和PL&#xff0c;如下圖所示。如果要運行一個AIE的應用&#xff0c;絕大多數情況下&#xff0c;這3個Domain我們都會用到&#xff0c;使其協同工作。這里我們僅…

linux less命令(less指令)(查看開頭、從開頭查看、從起始查看、反向導航、反向查找)

文章目錄 Linux Less 命令1. Less 命令簡介2. 基礎用法less filename<command> | less 3. 常用命令行選項4. 高級技巧和用法4.1 搜索內容4.2 標記和跳轉4.3 查看多個文件 5. less命令使用文檔6. 總結 Linux Less 命令 less 是一種在Linux環境中查看文件內容的工具&#…

《絕地求生》新手怎么玩 游戲基本介紹

隨著電競熱潮的興起&#xff0c;《絕地求生》已經成為了一款備受玩家熱愛的游戲。這款游戲在全球范圍內擁有龐大的玩家群體&#xff0c;它將你置身于一個荒無人煙的島嶼上&#xff0c;與其他99名玩家展開生死競爭。作為一個新手&#xff0c;下面閑游盒小盒子就為大家詳細介紹一…

Ubuntu20.04創建并掛在zfs池

Ubuntu 下使用 ZFS [適用于中高級用戶] 主磁盤上清潔安裝帶有ZFS的Ubuntu后&#xff0c;可以開始體驗其特性。 所有ZFS配置過程都需要命令行。 我不知道有GUI工具。 創建一個 ZFS 池 本節僅適用于具有多個磁盤的系統。 如果只有一個磁盤&#xff0c;Ubuntu會在安裝時自動創建…

寫實3D游戲模型紋理貼圖設置

在線工具推薦&#xff1a; 3D數字孿生場景編輯器 - GLTF/GLB材質紋理 - 3D模型在線轉換 - Three.js AI自動紋理開發包 - YOLO 虛幻合成數據生成器 - 三維模型預覽圖生成器 - 3D模型語義搜索引擎 當談到游戲角色的3D模型風格時&#xff0c;有幾種不同的風格&#xff1a; …

Mybatis源碼解析5:Mapper執行流程1

Mybatis源碼解析5&#xff1a;Mapper執行流程1 1.項目結構2. 源碼分析2.1 Mapper代理 MapperProxy#invoke2.2 創建MapperMethod2.2.1 方法名稱解析器ParamNameResolve2.2.2 MapperMethod#execute 2.3 DefaultSqlSession2.4 CachingExecutor2.5 SimpleExecutor#doQuery獲取連接對…

Nacos源碼解讀09——配置中心配置信息創建修改怎么處理的

存儲配置 從整體上Nacos服務端的配置存儲分為三層&#xff1a; 內存&#xff1a;Nacos每個節點都在內存里緩存了配置&#xff0c;但是只包含配置的md5&#xff08;緩存配置文件太多了&#xff09;&#xff0c;所以內存級別的配置只能用于比較配置是否發生了變更&#xff0c;只用…

進行生成簡單數字圖片

1.之前只能做一些圖像預測,我有個大膽的想法,如果神經網絡正向就是預測圖片的類別,如果我只有一個類別那就可以進行生成圖片,專業術語叫做gan對抗網絡 2.訓練代碼 import torch import torch.nn as nn import torch.optim as optim import torchvision.transforms as transfo…

飛天使-rsync大文件斷點續傳與vim批量刪除

文章目錄 rsync 斷點續傳&#xff0c;親測有效vim 批量刪除消息 rsync 斷點續傳&#xff0c;親測有效 rsync -vzrtp -P --append -e "/usr/bin/ssh -p 22 -o StrictHostKeyCheckingno" m.tar.gz root10.0.0.1:/tmp后臺運行 screem 既可 或者 nohup rsync -vzrt…

【華為od】存在一個m*n的二維數組,其成員取值范圍為0,1。其中值為1的元素具備擴散性,每經過1S,將上下左右值為0的元素同化為1。

存在一個m*n的二維數組,其成員取值范圍為0,1。其中值為1的元素具備擴散性,每經過1S,將上下左右值為0的元素同化為1。將數組所有成員初始化為0,將矩陣的[i, j]和[m,n]位置上元素修改成1后,在經過多長時間所有元素變為1。 輸入描述 輸入的前兩個數字是矩陣大小。后面是數字…

盛域宏數合伙人張天:AI時代,數字化要以AI重構

大數據產業創新服務媒體 ——聚焦數據 改變商業 在這個飛速發展的科技時代&#xff0c;數字化已經深刻地改變了我們的生活和商業方式。信息技術的迅猛發展使得數據成為現代社會最寶貴的資源之一。數字化已經不再是可選項&#xff0c;而是企業持續發展的必由之路。背靠著數據的…

【React】路由的基礎使用

react-router-dom6的基礎使用 1、安裝依賴 npm i react-router-dom默認安裝最新版本的 2、在src/router/index.js import { createBrowserRouter } from "react-router-dom"/* createBrowserRouter&#xff1a;[/home]--h5路由createHashRouter&#xff1a;[/#/ho…

Linux訪問NFS存儲及自動掛載

本章主要介紹NFS客戶端的使用 創建NFS服務器并通過NFS共享一個目錄在客戶端上訪問NFS共享的目錄自動掛載的配置和使用 1.1 訪問NFS存儲 前面那篇介紹了本地存儲&#xff0c;本章就來介紹如何使用網絡上上的存儲設備。NFS即網絡文件系統&#xff0c;所實現的是Linux和Linux之…

通信:mqtt學習網址

看這個網址&#xff1a;講的很詳細&#xff0c;后面補實戰例子 第一章 - MQTT介紹 MQTT協議中文版 (gitbooks.io)https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/01-Introduction.html