Java基礎語法入門
1、Java運行原理
2、 標識符
標識符:是被Java語言賦予特殊含義,具有專門用途的單詞,比如之前接觸的class,int,double均為Java已經預設好的,常見關鍵字有public static void class等;
標識符的命名規則:1、英文大小寫字母;2、數字字符;3、$和_;
註意事項:1、數字不能開頭 2、不可以使用關鍵字 3、嚴格區分大小寫,不限制長度 4、起名時,盡量達到見名知意。
3、數據類型與變量
基本數據類型:整數(byte、short、int、long)、小數(float、double)、字符類型(char)、布爾類型(boolean)
引用數據類型:是強大的數據類型,它是基於基本數據類型創建的。JavaSE中提供了一個超級類庫,類庫中包含了近萬種引用數據類型。
常量:就是不變的數據量,在程序執行的過程中其值不可以發生變化;
變量:如同內存中的一個小容器,用來裝數據,其功能為存取數據;
定義變量的語法格式:
數據類型 變量名 = 變量值;
int a = 100;
例:public class AAA {
public static void main(String[] args) {
int a = 10;
double b = 3.14;
char c = ‘z‘;
String s = "i love java";
a = 20;
System.out.println(a);
}
}
4、數據類型的轉換
1)、自動類型轉換:表示範圍小的數據類型轉換成範圍大的數據類型,這種方式稱為自動類型轉換
int i = 100;
double d2 = i;
2)、強制類型轉換:
表示範圍大的數據類型轉換成範圍小的數據類型,這種方式稱為強制類型轉換
如:int i = (int)6.718; //i的值為6
5、修飾符與運算符
修飾符:修飾類中方法和屬性。主要有兩類修飾符:
訪問控制修飾符:default , public, protected, private
非訪問控制修飾符:final,abstract,static,synchronized
運算符:
1) 算數運算符
+: +3=5(正號) 2+3=5(加號) “你”+”好”=”你好”
-: -3(負號) 5-3=2(減號)
* 乘號 / 除號 % 取模 ++自加 --自減
註意事項
a:加法運算符在連接字符串時要註意,只有直接與字符串相加才會轉成字符串。
b:除法“/”當兩邊為整數時,取整數部分,舍余數。當其中一邊為浮點型時,按正常規則相除。
c:“%”為整除取余符號,小數取余沒有意義。結果符號與被取余符號相同。
d:整數做被除數,0不能做除數,否則報錯。
e:小數做被除數,整除0結果為Infinity,對0取模結果為NaN
2) 比較運算符
== 相等於, != 不等於, < 小於,> 大於,<= 小於等於,>= 大於等於
比較運算符成立為true 不成立為false
3) 邏輯運算符
& 與; | 或;^ 異或;! 非;&& 短路與;|| 短路或
5) 三元運算符
(條件表達式)?表達式1:表達式2;
例:System.out.println( 3>2 ? “正確” : “錯誤” );
// 三元運算符運算後的結果為true,運算結果為表達式1的值“正確”,然後將 結果“正確”,在控制臺輸出打印
5、流程控制
If語句:
if語句格式第一種
書寫格式
if(比較表達式) {
語句體;
}
執行流程:
先計算比較表達式的值,看其返回值是true還是false。
如果是true,就執行語句體;
如果是false,就不執行語句體;
示例:public class IfDemo{
public static void main(String[] args){
int i = 5 ;
//對變量i進行if判斷
if(i > 5){
System.out.println("if中的條件是true");
i++;
}
System.out.println(i);
}
}
if語句格式第二種
書寫格式
if(比較表達式) {
語句體1;
}else {
語句體2;
}
執行流程:
* 首先計算比較表達式的值,看其返回值是true還是false。
* 如果是true,就執行語句體1;
* 如果是false,就執行語句體2;
示例:
public class IfElseDemo{
public static void main(String[] args){
int i = 16 ;
//判斷變量,是奇偶數, 除以2,看余數是0還是1
if( i % 2 == 0 ){
System.out.println(i+" 是偶數");
}else{
System.out.println(i+" 是奇數");
}
}
}
For循環:
使用格式
for(初始化變量 ; 條件 ; 增量){
循環體;
}
各模塊解釋
初始化變量: 定義變量,作用是用來控制循環的次數
條件: 當條件是true,執行循環體,條件是false,結束循環
增量: 變量自增情況
例:
public class ForDemo{
public static void main(String[] args){
//for循環,輸出0-10
for(int i = 0 ; i < 11 ; i++){
System.out.println(i);
}
}
}
do_while循環
使用格式
do{
循環體;
}while(條件);
執行順序
先執行一次循環體,然後再判斷條件,如果條件為true,繼續執行循環體,
如果條件為false,循環結束。
特點
* 無條件先執行一次
例:
public class DoWhileDemo{
public static void main(String[] args){
int i = 0;
do{
System.out.println(i);
i++;
}while( i < 5);
}
}
continue語句
作用
提前結束本次循環,繼續進行下次循環
使用方式
無法單獨使用,必須將continue關鍵字置於循環語句中
運行規律
不需要判斷任何條件,只要遇到continue變直接跳出本輪循環進行下次循環
例:
public class ContinueDemo{
public static void main(String[] args){
for(int i = 0 ; i < 10 ; i++){
if(i%2==0){
continue;
}
System.out.println(i);
}
}
}
//會把0-9之間所有的奇數打印到控制臺上
switch語句解構
switch只能針對某個表達式的值作出判斷,從而決定程序執行哪一段代碼。
格式如下:
swtich(表達式){
case 常量1 :
要執行的語句;
break;
case 常量2 :
要執行的語句;
break;
case 常量3 :
要執行的語句;
break;
default:
要執行的語句;
break;
}
執行流程: 表達式,和case後面的常量進行比較和哪個case後的常量相同,就執行哪個case後面的程序,遇到break,就全結束
6、數組
格式:數據類型[] 數組名 = new 數據類型[元素個數或數組長度];
例:int[] x = new int[100];
註意:1)數據類型: 數組中存儲元素的數據類型
2) [] 表示數組的意思
3) 變量名 自定義標識符
4) new 創建容器關鍵字
5)數據類型: 數組中存儲元素的數據類型
6)[] 表示數組的意思
7)元素個數,就是數組中,可以存儲多少個數據 (恒定, 定長)
數組是一個容器: 存儲到數組中的每個元素,都有自己的自動編號
自動編號,最小值是0, 最大值,長度-1
自動編號專業名次, 索引(index), 下標, 角標
訪問數組存儲的元素,必須依賴於索引, 公式 數組名[索引]
Java提供一個屬性,操作索引的
數組的一個屬性,就是數組的長度, 屬性的名字 length
使用屬性: 數組名.length 數據類型 int
數組的最小索引是0, 最大索引數組.length-1
7、類與方法
類:具有相似屬性和方法的對象的集合,是具有相同數據成員和函數成員的一組對象的集合,它為屬於該類的全部對象提供了抽象的描述
方法:一般為類的行為
方法的格式
修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2...) {
方法體語句;
return 返回值;
}
例:public class MethodDemo{
public static void main(String[] args){
//調用方法, 方法執行起來
// 在方法main中,調用方法 getArea
int area = getArea(5,6);
System.out.println("面積是: "+area);
}
方法的調用:
在main函數中調用方法,讓方法執行
例:public class MethodDemo_1{
public static void main(String[] args){
double x=3;
double y=5;
double z=3;
double s=getAvg(x,y,z);
System.out.println(avg);
}
public static double getAvg(double a, double b,double c){
return (a+b+c)/3;
}
}
方法的重載:在同一個類中,方法名相同,參數列表不同。與返回值類型無關。
參數列表不同:
A:參數個數不同
B:參數類型不同
C:參數的順序不同
例:public static int getSum(int a,int b){
System.out.println("兩個int參數");
return a+b;
}
public static int getSum(int a,int b,int c){
System.out.println("三個int參數");
return a+b+c;
}
public static double getSum(double a,double b){
System.out.println("兩個double參數");
return a+b;
}
8、泛型:
泛型是jdk5引入的類型機制,就是將類型參數化,它是早在1999年就制定的jsr14的實現。
泛型機制將類型轉換時的類型檢查從運行時提前到了編譯時,使用泛型編寫的代碼比雜亂的使用object並在需要時再強制類型轉換的機制具有更好的可讀性和安全性。
例:public class GenericDemo {
public static void main(String[] args) {
function();
}
public static void function(){
Collection<String> coll = new ArrayList<String>();
coll.add("abc");
coll.add("rtyg");
coll.add("43rt5yhju");
// coll.add(1);
Iterator<String> it = coll.iterator();
while(it.hasNext()){
String s = it.next();
System.out.println(s.length());
}
}
}
9、類的聲明與實例化
類的定義:
如下例:
public class Dog{
String name;
int age;
void bark(){ // 汪汪叫
System.out.println("汪汪,不要過來");
}
void hungry(){ // 饑餓
System.out.println("主人,我餓了");
}
}
類的實例化:
Dog myDog; // 聲明一個對象
myDog = new Dog("花花", 3); // 實例化
Java基礎語法入門