java入门到精通60天(代码)

Java入门

while循环小程序

import java.util.Scanner;

public class TestArray {
public static void main(String[] args) {
System.out.println("******************************"+"\n"+“请选择购买商品的编号:”+"\n"+“1.T恤\t2.网球鞋\t\t3.网球拍”+"\n"+"**************************");
//调用scanner类创建对象
Scanner sc=new Scanner(System.in);
int j=0;
int i=0;
int k=0;
while (i<10){
System.out.print(“请输入商品编号”);
//这里需要注意scanner的返回值
int a=sc.nextInt();
System.out.print(“请输入购买数量”);
int b=sc.nextInt();
if(a==1){
j=245;
System.out.println(“T恤”+"KaTeX parse error: Undefined control sequence: \t at position 6: "+j+"\̲t̲"+"数量"+b+"\t"+"…"+j+"\t"+“数量”+b+"\t"+“合计”+b
j);
}else
if(a==3) {
j=320;
System.out.println(“网球拍”+"$"+j+"\t"+“数量”+b+"\t"+“合计”+b
j);
}
System.out.println(“是否继续(y/n)”);
int s = sc.nextInt();
if(s==1){
k+=b
j; i++;}else if(s==2){
k+=b
j;
System.out.println(k);
}
}
System.out.println(“end”);
}
}
输出结果


请选择购买商品的编号:
1.T恤 2.网球鞋 3.网球拍


请输入商品编号1
请输入购买数量2
T恤$245 数量2 合计490
是否继续(y/n)
1
请输入商品编号2
请输入购买数量3
网球鞋$570 数量3 合计1710
是否继续(y/n)
1
请输入商品编号2
请输入购买数量1
网球鞋$570 数量1 合计570
是否继续(y/n)
2
2770
请输入商品编号

类是对象的抽象,对象是类的实例化

接口

1.接口中的所有方法都是抽象方法,不能包含方法的实现
2.接口中的所有方法的访问修饰权限都是public,不写并不是默认访问权限,而是public
3.接口不能被实例化
4.接口的子类必须要实现接口中的所有方法,跟抽象类有所不同,抽象类中的抽象方法必须要被子类实现
5.子类可以拥有实现多个接口
6.接口中的变量都是静态常量,如果变量没有使用static关键字修饰,他也表示静态常量,不用final关键字修饰,也是常量
7.接口中的方法和常量无论是否添加修饰,默认的权限有且仅有一个,就是public

接口的使用

1.接口代表一種能力,接口中可以定義N多個方法,子類再進行實現的時候,必須要實現這些方法,將這些方法進行實現,就意味著具體了方法的能力
2.接口代表一種約定,一種規範
抽象類和接口的區別
1.抽象類的方法可以有抽象方法,也有普通方法,但是接口中只能包含抽象方法
2.抽象類需要使用abstract關鍵字來修飾,而接口使用interface關鍵字來修飾
3.子類使用extends關鍵字來繼承抽象類,使用implements來實現接口
4.子類繼承抽象類的時候必須要實現所有的抽象方法,普通方法可以不重寫,而接口中的所有方法必須實現
5.抽象類中可以定義成員變量,而接口中只能定義靜態常量
6.抽象類在實現子類的時候是單繼承,而接口是多繼承
7.抽象類和接口都不能實例化,但是抽象類中可以有構造方法,而接口中不能有構造方法
8.抽象類中可以實現接口,并且不實現接口中的方法,而接口只能繼承接口,不能實現接口
注意:在實際的項目開發過程中,如果可以使用接口,盡量使用接口,將單繼承的父類留在最關鍵的地方

内部類

内部類可以當作類中的一個普通成員變量,只不過此成員變量是class的類型
//外部類·内部類 對象名=new 外部類()·new 内部類();
//一個java文件中可以包含多個class,但是只能有一個public class,如果一個類定義在另一個類的内部,此時可以稱之爲内部類
使用:
創建内部類的時候,跟之前的方法不一樣,需要在内部類的前面添加外部類來進行修飾
特點:
1.内部類可以方便的訪問外部類的私有屬性
2.外部類不能直接訪問内部類的私有屬性,如果創建了内部類的對象,此時可以在外部類中訪問私有屬性
3.内部類中不能定義靜態屬性
4.黨内部類和外部類具有相同的私有屬性的時候,在内部類中訪問的時候,可以直接訪問内部類的屬性,如果需要訪問外部類的屬性,那麽需要添加 外部類類名.this.屬性名
匿名内部類:儅定義了一個類,實現了某個接口的時候,在使用過程中只需要使用一次,沒有其他的用途,其實考慮到代碼簡潔,可以考慮不創建具體的類,而采用new interface(){添加為實現的方法}就叫做匿名内部類
靜態内部類:在内部類中可以定義靜態内部類,使用static關鍵字進行修飾,使用規則:
外部類.内部類 類的引用名稱=new 外部類.内部類();

方法内部類:在外部類的方法中也可以定義類,此時叫做方法内部類(瞭解即可)
使用的時候需要注意,只能在方法中創建對象

異常

1.捕獲異常
try{代碼邏輯}catch(Exception e){異常處理邏輯}finally{}
try{代碼邏輯}catch(具體的異常Exception e){異常處理邏輯}catch(具體的異常Exception e){異常處理邏輯}finally{}:可以針對每一種異常做相應更豐富的處理
e.printStackTrace():打印異常的堆棧信息,可以從異常的最後一行開始追蹤,尋找自己編寫的java類
//在程序運行過程中,如果處理異常的部分包含finally的處理,那麽無論代碼是否發生異常,finally中的代碼總會執行
finally的處理邏輯
1.io流的關閉操作一般設置在finally中
2.數據庫的連接關閉操作設置在finally中

//在方法調用過程中,可以存在N多個方法之間的調用,此時假如每個方法中都包含了異常情況,那麽就需要在每個方法中都進行try。。catch,另外一種比較簡單的方式,就是在方法的最外層調用處理一次即可,使用throws的方法,對所有執行過程中的所有方法出現的異常進行統一集中處理
//如何判斷時使用throws還是使用try。。catch。。
1.最穩妥的方式是在每個方法中都進行異常處理
2.最偷懶的方式是判斷在整個調用的過程中,外層的調用方法是否有對異常的處理,如果有,直接使用throws,如果沒有那麽就要使用try。。catch。。
//自定義異常:
在java的api中提供了非常豐富的異常類,但是在某些情況下不太滿足我們的需求,此時需要自定義異常
步驟:
1.繼承Exception類
2.自定義實現構造方法
3.需要使用的時候,使用throw new自定義異常的名稱
什麽時候需要異常自定義?
一般情況下不需要
但是在公司要求明確,或者要求異常格式規範統一的時候是必需要自己實現的

StringBuffer和StringBuilder

//StringBuffer:綫程安全,效率低
//StringBuilder:綫程不安全,效率高

Date&&Dateformat

Date date=new Date();
//1970年至今的毫秒數
System.out.println(date.getTime());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“yyyy-MM-dd HH-mm-ss”);
//將日期轉換成字符串
String format = simpleDateFormat.format(date);
System.out.println(format);
//將字符串轉換爲日期
Date parse = simpleDateFormat.parse(format);
System.out.println(parse);

枚举类

public enum Aa {
//直接在枚举类中创建好现成的对象
LAUNCH(“a”),FNN(“b”),PI(“c”);
public String name;
Aa (String name){
this.name=name;
}
public void show(){
System.out.println(this.name);
Aa[] values = values();
for (int i = 0; i <values.length ; i++) {
System.out.println(values[i]);
}
}
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值