JAVA 基礎

 

理論知識

代碼演示

Java文件:

源文件(.java)和字節碼文件(.class)

通過編寫源文件—>字節碼文件,然後通過JVM運行字節碼文件

當創建一個java文件後,如果此類前面有public修飾的話,類名字要和文件名相同;在一個文件中可以定義多個類,但是只能有一個類前面有public修飾其餘都不可以有public

public class review{

}

class A{

}

class B{

}

Main方法:

Public static void main(String [] args)    main 方法是無返回類型的,所以在main 方法中是不可以有return關鍵字的

public static void main(String[] args) {

          }

輸出語句:

System.out.print();

Print()和println()的區別:

第一個不帶換行,第二個有換行。

如果說用print()想達到println()的效果,可以用“\n”來實現

System.out.print("\n");

System.out.println();

輸入語句:

1.  先倒入一個包

2.  定義Scanner類的對象

3.  完成從控制檯的輸入

import java.util.*; 或 import java.util.Scanner;
Scanner input = new Scanner(System.in) ;
input.nextInt(); //從控制檯輸入的整數

input.next();   //從控制檯輸入的字符串

input.nextDouble();//從控制檯輸入的雙精度浮點型
注意:input 是Scanner類的對象,此名字可以變換

數據類型:

1.  引用數據類型:
String類型

自定義類

 

2.  基本數據類型:

數值型: Int  double

非數值型:String char Boolean

 

引用數據類型和基本數據類型的區別是:

引用數據類型有方法,而基本數據類型沒有方法

 

1.   String str = new String(“我是一個字符串”);

String str1 = “我也是一個字符串”;

 

Str.equals(“想要比較的字符串”)

Str.equalsIgnoreCase()  //比較字符串是否相當,忽略大小寫

Str.substring();  //截取字符串

Str.indexOf()   //索引字符第一次出現的位置

Str.lastIndexOf()  //索引字符最後一次出現的位置

 

自定義:

Class A{自定義的類}

A a = new A();

a.方法();

2.int a = 123;

   Double d = 12.5;

   Boolean b = true;

   Char c = ‘a’;

類型轉換:

1.顯示類型轉換(強制類型轉換)

   從大的-->小的

2.隱式類型轉換(自然轉換)

 a.兩種數據類型要兼容

 b.從小的à大的

1.    double d = 12.3;

      Int a = (int)d;

 

2.              int b = 13;

double d = b;

運算符:

關係運算符、賦值運算符

算術運算符、邏輯運算符

關係運算符  > <  >=  <=  !=(不等於)==(是否等於)

賦值運算符  =

算術運算符  + - * /  %(求餘)  ++(自加1)  --(自減1)

邏輯運算符  &&(並且) || (或者)  !(非)

分支結構:

If- else if – else   條件判斷的順序要從小到大 或是 從大到小

Switch(表達式){  //int char

Case 常量:     //Int char

       語句;

       Break;

Default:

      語句;

      Break;

}

 

區別:

If-else  是區間判斷

Switch  是等值判斷

int money = 1000;

if(money > 100){

          System.out.println("奔馳");

}else if(money > 50){

          System.out.println("寶馬");

}else if(money > 10){

          System.out.println("雪弗來");

}else{

          System.out.println("啥也不買,繼續賺錢");

}

int money = 1000;    //注意變量的類型

switch(money){

case 100:

          System.out.println("奔馳");

          break;

case 50 :

          System.out.println("寶馬");

          break;

case 10:

          System.out.println("雪弗來");

          break;

default:

          System.out.println("啥也不買,繼續賺錢");

}

循環結構:

For、while、do-while

區別:

變量初始化   ①

While(條件判斷){ ②

    語句;  ③

    變量更新;//避免死循環④

}

 

變量初始化   ①

Do{

語句;②

    變量更新;//避免死循環③

 

}while(條件判斷);  //注意有分號  ④

 

     ①       ②       ④

For(初始化;條件判斷;變量更新){

    語句;   ③

}

 

注意:

當初始值相同,條件判斷相同的情況下,while 、do-while 、for的執行次數都是相同的,

但是當初始值第一次都不滿足條件時,do-while至少執行一次

int i = 1;

while(i<=5){

          System.out.println("i=" + i);

          i++;

}

int i = 1;

do{

          System.out.println("i=" + i);

          i++;

}while(i<=5);

 

for(int i=1; i<=5; i++){

          System.out.println("i=" + i);

}

注意:for循環裏的三個表達式都可以省略,但“;”是不可以省略的

跳轉關鍵字:

Break  結束循環,跳出循環結構

Continue 結束當前循環,進入下一次循環

 

但是:

如果在循環結構中有switch結構,那麼break先跳出的是switch結構

for(int i=1; i<=5; i++){

          if(i+1 >4){

                    break;

          }

}

for(int i=1; i<=5; i++){

          if(i+1 < 4){

                    continue;

          }

          System.out.println("看看我是什麼時候能輸出");

}

 

for(int i=1; i<=7; i++){

          switch(i){

          case 1:

          case 2:

          case 3:

                    System.out.println("喝粥");

                    break;

          default:

                    System.out.println("吃鹹菜");

          }

}

數組:

1.定義:

1.  數據類型 [] 變量名 = new 數據類型[分配空間長度];.

2.  數據類型 變量名[] = new 數據類型[分配空間長度];

2. 賦值:

   參看右側代碼

 

3. 數組求長度:

Length (是屬性)

 

4. 數組元素如何遍歷:

通過下標索引數組中每一個元素

但注意:

數組的下標最大值是:數組長度-1

數組下標是從 0 開始

 

5. 數組排序:

參看右側代碼

 

 

 

 

 

 

 

 

 

6. 排序

參看右側代碼

1. 定義:

Int [] arr = new int[5];

    Int arr [] = new int[5];

 

2.  賦值:

a.  Int [] arr = new int[]{1,2,3};

b.  Int [] arr = {1,2,3,4}

c.   Int [] arr = new int[4];

Arr[0] = 2;

Arr[1] = 3;

……

3.          長度

    Int [] arr = new int[]{1,2,3};

    Arr.length;    è  3

 

4.

int [] arr = new int[]{1,2,3,4,5};

for(int i= 0; i<arr.length; i++){

          System.out.println(arr[i]);

}

5.//擂臺法

int [] arr = new int[]{19,21,3,14,5};

int max = arr[0];   //設置一個擂臺 max

for(int i= 1; i<arr.length; i++){

          if(arr[i] > max){

                    max = arr[i];

          }

}

System.out.println("max=" + max);

 

6.排序

//正序輸出

int [] arr = new int[]{19,21,3,14,5};

Arrays.sort(arr);  //sort中加入要排序的數組名

for(int i= 0; i<arr.length; i++){

          System.out.println(arr[i]);

}

 

//倒序輸出

int [] arr = new int[]{19,21,3,14,5};

Arrays.sort(arr);  //sort中加入要排序的數組名

for(int i=arr.length -1; i>=0; i--){

          System.out.println(arr[i]);

}

字符串:

1.字符串定義:

   String str = new String(“您好:”);

   String str = “好好學習”

 

2.    字符串的方法調用

參看右側代碼

方法調用演示

//字符串索引

String str = "hello_world";

int position = str.indexOf("o");  //索引的是第一次出現的字符串或是字符

System.out.println(position);     //索引的字符串的下標從 0 開始計算

 

//字符串索引

String str = "hello_world";

int position = str.lastIndexOf("o");  //索引的是最後一次出現的字符串或是字符

System.out.println(position);     //索引的字符串的下標從 0 開始計算

 

//字符截取

String str = "hello_world";

String newStr = str.substring(3,6); //第一個參數下標從0開始計算   第二個參數下標從1開始結算

System.out.println(newStr); à lo_

 

String str = "hello_world";

String newStr = str.substring(3); //第一個參數下標從 0 開始計算,將後面的所有字符都取出

System.out.println(newStr);àlo_world

 

//如何遍歷字符串中的每一個字符

String str = "hello_world";

for(int i=0; i<str.length(); i++){

          System.out.print(str.charAt(i) + "\t");

}

System.out.println("\n-------------");

for(int i= 0 ; i< str.length(); i++){

          System.out.print(str.substring(i, i+1) + "\t");

}

 

//字符連接

String str1 = "hello";

String str2 = "world";

String newStr = str1.concat(str2);  //用concat連接之後,生產一個新的字符串

 

StringBuffer sb = new StringBuffer();

sb.append("hello");

sb.append("world");   //hello  和 world 都會加入sb對象之中,並不像String 類型的concat方法

 

StringBuffer 類型 à string類型

調用 toString()

Sb.toString()

類和對象:

1.類和對象的關係:

類是一類具有相同屬性和方法的對象的集合,我們會將這類對象裏的屬性和方法提取出來,寫入類中。

2.如何定義一個類

   參看右側代碼

3.如何定義類的屬性和方法

   參看右側代碼

注意:

在定義類的方法的時候,方法的返回類型有兩種情況:

1.無返回類型   void

   那麼此時,方法中不要出現return關鍵字

2有返回類型  String/Int ….

  方法的返回類型,取決於return後面表達式的返回類型

 

◆      void 和 return 不可以同時出現在方法中

 

 

 

 

 

 

 

★     方法是否帶有參數:

1.方法所帶的參數個數可以無限個,但彼此間要用 “,” 逗號來分隔,

.   2. 方法所帶的參數類型和方法的返回類型無關

    3.方法定義的過程中,是否帶參數和方法是否有返回值或無返回值,沒有固定格式,是根據具體設計代碼而定

 

4.  方法調用

如果在兩個方法在一個類中,那麼方法之間可以直接調用。

如果兩個方法在兩個類中,那麼方法之間,必須先要實例化對象纔可以調用

 

定義類:

  Public class 類名{}    建議類名的首字母大寫

 

定義類的屬性和方法

   Public class Person{

       Int age;

       String name;

 

       Public String eat(){

             Retrun “我喜歡吃米飯”;

}

}

 

方法返回類型:

public int getAge(){

          return 10;   //因爲return後面 10 是整數類型 所以此方法的返回類型要求Int型

}

          

public void show(){    //此方法爲無返回類型

          int a = 10;

          int b = 19;

          System.out.println("無返回類型"+ (a+b));

}

 

方法帶參數

Public void showArg(int a, Char b, String c){

    System.out.print(a + b + c);

}

 

Public String showArg(int a, Char b, String c){

    Return a + b + c;

}

 

 

//同一個類中的方法調用

public class review{

          public int a(){

                    return 1;

          }

          public int b(){

                    a();     //直接調用本類中的a方法

                    return 8;

          }

}

 

//不同類中的調用

public class Hello{

          public int a(){

                    return 1;

          }

}

 

class Other{

          public void b(){

                    Hello h = new Hello();  //先實例化對象

                    h.a();      //對象調用方法

          }

}

包:

定義包:

Package 包名

 

但注意,包的定義一定要在第一行

package com.accp.dlc;

import java.util.*;

public class Hello{

          public int a(){

                    return 1;

          }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章