JAVA編程課件

JAVA編程基礎

程序的意義
數據
存儲數據 內存 變量 大小
處理數據 CPU 命令 快慢

數據種類

數字:整數、小數
布爾值:true、false
字符串:幾乎所有的內容都是字符串

存數據的變量類型

整數:int
小數:double
布爾值:boolean
字符串:String

如何把一個數據存起來

申明變量類型:分配內存
取變量名:記錄內存位置
用=:往變量指向的內存放數據,專業名詞:賦值符
數據:要存儲的事情
“;”:命令行結束

如何把一個數據存起來

int age=18
double money=8888.88
String company=”上海果芽軟件科技有限公司”;
String type=”RMB”;
密碼:String password=”123456”;
String pwd=”123456”;
訂單金額:double amount=99.99;
點燈是否開著:boolean isLight=true;

如何存一批數據

1個變量(基本數據類型):存1個數據
多個變量(引用變量類型):容器

容器種類

數組Array:個數固定、數據含義相同、單個值
鏈表ArrayList:動態增加、數據含義相同、單個值
HashSet:動態增加、數據含義相同、單個值、自動去重
HashMap:個數變化、數據含義不同、數據需要給含義,一對一對的數據,鍵值對/key=value
JavaBean:個數固定、數據含義不同、數據需要給含義,一對一對的數據,鍵值對

數據的操作

增、刪、改、查、統計
變量的增刪改查統計
界面功能的增刪改查統計:支付、學生信息、面試信息
組織一次活動的增刪改查統計:聚餐

單個變量的增刪改查統計

增:int age=18;
刪:方法執行結束,系統會自動回收內存
// int age = 18;
/* int age = 18; */
改:age=38;
查/取:age

數組的增刪改查統計11

新建容器:int[] ages=new int[30];
增:下標 ages[0]=18; ages[8]=28; ages[29]=38; ages[30]=48;
刪:ages[8]=null;
改:ages[29]=20;
查/取:ages[8]
統計:ages.length返回數組大小
int[] scores={100,10,60,79};
等價
int[] scores=new int[4];
scores[0]=100;
scores[1]=10;

ArrayList的新建/增/刪/改/查/統計

新建容器:List<int> ages=new ArrayList<int>();
List:接口,定義實現類要寫什么內容
ArrayList:實現類
<>:泛型
():構造方法
增:ages.add(18); ages.add(28);
刪:
改:
查/取:ages.get(2); ages.get(4);
統計:ages.size();返回大小

報錯/異常日志

image.png

HashSet的新建/增/刪/改/查/統計

新建容器:Set<Integer> ages=new HashSet<Integer>();
Set:接口,定義實現類要寫什么內容
HashSet:實現類
<>:泛型
():構造方法
增:ages.add(18); ages.add(28);
刪:
改:
查/取:
統計:ages.size();返回大小

HashMap的新建/增/刪/改/查/統計

新建容器:Map<String,String> phones=new HashMap<String,String>();
Map:接口,定義實現類要寫什么內容
HashMap:實現類
<>:泛型
():構造方法
增:phones.put("王慧碩", "1232321231");
刪:
改:phones.put("王慧碩", "8765432123");
查/取:phones.get("王慧碩")
統計:phones.size();返回大小

main方法:編寫

main

alt+/

enter ******* public static void main(String[] args) {

}

syso

alt+/ ******** System.out.println("測試");
enter


image.png

main方法:執行方式1

image.png

main方法:執行方式2

image.png

image.png

main方法:作業提交截圖樣例

image.png

變量和容器練習

使用變量和不同的容器,存儲登錄界面的數據。
用戶名:userName
密碼:password
校驗碼:checkCode


image.png

變量和容器練習:流程

  1. 每個練習選一個人上臺直播寫,下邊說,上邊寫

  2. 所有練習學生輪流直播寫一輪后,開始正式全員動手寫

  3. 演示截圖樣例

  4. 使用上傳總結界面,每道題全部通過后,進行下一道題,先做完的輔導分派到其它組進行指導

  5. 全員動手寫一遍后,復習動口一輪

  6. 再選人直播寫一遍

變量和容器練習:使用變量存儲

    String userName= "lilei";
    String password="123466";
    String checkCode="1234";

變量和容器練習:使用數組存儲

    String[] datas=new String[3];
    datas[0]="李磊";
    datas[1]="123466";
    datas[2]="1234";

變量和容器練習:使用ArrayList存儲

    List<String> list = new ArrayList<String>();
    list.add("lilei");
    list.add("123456");
    list.add("1234");

變量和容器練習:使用HashMap存儲

    Map<String, String> map = new HashMap<String,String>();
    map.put("userName", "lilei");
    map.put("password", "123466");

類和JavaBean新建類

  1. 類名:首字母大寫,駝峰命名法


    image.png

    image.png

工程結構:java三大特性之一:封裝

  1. project工程

  2. package包

    包名
    “.”
    查看文件夾路徑

  3. class類
    .java后綴:源文件
    .class后綴:源文件編譯后的文件

  4. field字段

  5. method方法


    image.png

方法的結構

  1. 權限:public/private

  2. 返回值類型:void不返回

  3. 方法名method

  4. ()參數列表

  5. 入參類型 入參變量名

  6. {}方法體

為什么返回只需要寫類型,
但是入參需要些類型
和變量名?
public void test(){
System.out.println("test");
}

public void sayHello(String name){
System.out.println("hello");
}

public String answer(String question){
return "答案";
}

public String answer(String question,int a){
return "答案";
}

類的作用

打包封裝:字段和方法

方法的作用

打包封裝:命令

main方法的作用

代表一個程序:

1個程序只有一個main方法

所有代碼可以全部寫在一個main方法里面

不在main方法里面的內容不會執行

main方法的命令可以封裝成方法打包調用

Main方法的內容

快捷寫法:
main
alt+/
enter

  1. 手工寫
    public static void main(String[] args){

    }
    權限:public
    靜態的static
    返回值類型:void
    方法名:main
    參數列表()
    入參是一個數組:String[] args
    方法體:{}

程序只會執行main方法里面的內容. 其他方法要想被執行,只能加到main方法里面

方法的作用:封裝(重構)--高手必經之路(把屎一樣的代碼寫得像詩一樣)

image.png

image.png

一個程序最少的構成元素

1個工程

1個包

1個類

1個main方法
把1個main方法的命令拆分封裝成很多個可復用的方法

把1個類拆分封裝成很多個子類

把1個包里的很多個類拆分封裝成很多個子包

把1個工程里的很多業務拆分成很多個子工程

把1個公司的業務拆分成很多個專項子公司

從無到有
從有到優

人無我有
人有我優
人優我轉

封裝的目的

代碼簡單
復用


image.png

image.png

用main方法實現加法運算

  1. 變量可以復用
  2. 加法和打印命令重復了好多次


    image.png

對重復代碼進行重構(封裝)

image.png

image.png

image.png

“+”運算符

數字+數字: 1+2=3
字符串+字符串: “abc”+”def”=“abcdef”
數字+字符串: 231+”def”=“231def”
字符串+變量: int a=231; ”def”+ c =“def231”

算術運算符:取余

有一批學生,從學號1開始報數,每4個唱首歌

用1個變量存放學號
int no=0;

no=1;

if( no % 4 == 0 ){
System.out.println(“唱歌”);
}

no=2;
if( no % 4 == 0 ){
System.out.println(“唱歌”);
}

算術運算符:自增

有一批學生,從學號1開始報數,每4個唱首歌

用1個變量存放學號
int no=0;

no++;

if( no % 4 == 0 ){
System.out.println(“唱歌”);
}

no++;
if( no % 4 == 0 ){
System.out.println(“唱歌”);
}

賦值運算符

= int a=1 a=1
+= a+2=2 a=a+2;a=3
-= a-=3 a=a-3;a=0
*= a*=3 a=a*3;a=0
/=
%= a=7;a%=3 a=a%3;a=1

邏輯運算符

&& int a=5; a>3 && a<10; true a>6 && a<10; false
int a=5; a>6 a<10; true
! int a=5; int b=6; a!=6 true
boolean result = 2==3 1==1;

boolean result ;
2==3 false
1==1 true
false || true result=true

條件運算符

variable x = (expression) ? value if true : value if false
int a = (age <= 18) ? 少年: 大叔;
int a = (sex == 0 ) ? 美女 : 野獸;

分支結構

媳婦讓你去買6個包子,如果看到西瓜,買一個。

最后只買了1個包子

分支結構:if 語句

if(布爾表達式)
{
//如果布爾表達式為true將執行的語句
}
public static void main(String args[]){
int x = 10;

  if( x < 20 ){
     System.out.print("這是 if 語句");
  }

}

分支結構:if...else語句

if(布爾表達式){
//如果布爾表達式的值為true
}else{
//如果布爾表達式的值為false
}
public static void main(String args[]){
int x = 30;

  if( x < 20 ){
     System.out.print("這是 if 語句");
  }else{
     System.out.print("這是 else 語句");
  }

}

分支結構:if...else if...else 語句

if(布爾表達式 1){
//如果布爾表達式 1的值為true執行代碼
}else if(布爾表達式 2){
//如果布爾表達式 2的值為true執行代碼
}else if(布爾表達式 3){
//如果布爾表達式 3的值為true執行代碼
}else {
//如果以上布爾表達式都不為true執行代碼
}
public static void main(String[] args){
int x = 30;

  if( x == 10 ){
     System.out.print("Value of X is 10");
  }else if( x == 20 ){
     System.out.print("Value of X is 20");
  }else if( x == 30 ){
     System.out.print("Value of X is 30");
  }else{
     System.out.print("這是 else 語句");
  }

}

分支結構:嵌套的 if…else 語句

if(布爾表達式 1){
////如果布爾表達式 1的值為true執行代碼
if(布爾表達式 2){
////如果布爾表達式 2的值為true執行代碼
}
}
public class Test {

public static void main(String[] args){
int x = 30;
int y = 10;

  if( x == 30 ){
     if( y == 10 ){
         System.out.print("X = 30 and Y = 10");
      }
   }
}

}

循環結構 for循環

int i=0;

if(i<30){
System.out.println(“唱歌”);
i++;
}

if(i<30){
System.out.println(“唱歌”);
i++;
}

if(i<30){
System.out.println(“唱歌”);
i++;
}


for(int i=0;i<30;i++){
System.out.println(“唱歌”);
}
for:for循環控制器

():循環的條件

int i=0:初始值

i<30:最大值

i++:增量為1(i+=2:增量為2)

{}:要循環執行的命令

循環結構:while 循環

while( 布爾表達式 ) {
//循環內容
}


while可以替換for循環

但是for循環不能完全替換while循環


public static void main(String args[]) {
int x = 10;
while( x < 20 ) {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}
}

循環結構:break關鍵字

break; 終斷
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};

  for(int x : numbers ) {
     // x 等于 30 時跳出循環
     if( x == 30 ) {
        break;
     }
     System.out.print( x );
     System.out.print("\n");
  }

}

循環結構:continue關鍵字

continue; 當前的結束,繼續下一個
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};

  for(int x : numbers ) {
     if( x == 30 ) {
    continue;
     }
     System.out.print( x );
     System.out.print("\n");
  }

}

循環結構:增強 for 循環

for(聲明語句 : 表達式)
{
//代碼句子
}
public static void main(String args[]){
int [] numbers = {10, 20, 30, 40, 50};

  for(int x : numbers ){
     System.out.print( x );
     System.out.print(",");
  }
  System.out.print("\n");
  String [] names ={"James", "Larry", "Tom", "Lacy"};
  for( String name : names ) {
     System.out.print( name );
     System.out.print(",");
  }

}

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,759評論 18 399
  • 【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第三個月后每個月又生一...
    阿里高級軟件架構師閱讀 3,307評論 0 19