物件導向(java菜鳥的課堂筆記),java課堂筆記
類:相同的東西放在一起分為屬性和動作;把一組或多組事物相同的特性的描述==》類 屬性和動作被稱為成員://聲明類的屬性資訊public class **{String name;int age;char sex;}//聲明類的動作資訊(要在屬性資訊裡面)public void eat(){System.out.println("eating");}public void study(){System.out.println("study");}public void playgame(){System.out.println("playing");}類==》抽象化類當中的個體才能進行實際的操作 抽象化過程對象==》類具象化過程類==》對象 物件導向==面向具象化的類; 產生對象(主類中)student student1 = new student();給對象賦值(主類中)student.name = "***"; 構造器:執行個體化的時候自己調用構造器名字必須和類名一致,並且沒有傳回值類型; static 靜態類層級的屬性 static int ***;被static 修飾的方法叫靜態方法 只能調用靜態屬性; 匿名對象 只能進行一次調用this.代表當前類本身 java 對象也可以增刪改查調用方法可以調用自己 用來迴圈;flage 開關;public 公用的 共有private 私人 僅自己訪問protected 子類和父類共有 外部禁止訪問extends 繼承將兩個類共有的部分抽離出來 過程叫泛化抽離出來的類叫父類 被抽離的類叫做子類子類繼承父類元素 使用 extends ;從父類分到子類叫做特化;所有類預設繼承Object類;一個類只能直接繼承一個父類 ;分為間接繼承和直接繼承 ;間接繼承繼承父類的父類;方法的複寫 相當於擴充父類的成員;有相同的屬性時 顯示子類的,父類將被覆蓋;除非聲明調用父類;先調用父類構造器,後調用子類構造器;super()調用父類構造器,必須寫在第一行;寫在子類構造器裡面; instanceof (強轉換時使用)判斷是不是某個類;複寫規則:(子類)一同兩小一大this ();調用在有參構造器中調用無參構造器 (必須寫在第一行) 將其他類型轉換成int;如果有轉換不了的報數字格式化異常int ** = Integer.parseInt(***) ArrayIndexOutofBoundsExceptionNumberFarmatException 數字格式化異常 異常捕獲:try{}catch(Exception e){}String * = i+" ";轉換成String型 餓漢模式懶漢模式final定義的變數變為常量;下面做一個超市的管理系統:
import java.util.*; //調包
public class Main{ //建一個主類
static Scanner sc = new Scanner(System.in);
static int i = 0;
static Chaoshi[] shop = new Chaoshi[100];
public static void main(String[] args){ //主入口
menu(); //調用菜單方法
}
public static void menu(){ //定義一個菜單方法
System.out.println("============================");
System.out.println("》歡迎進入超市庫存統計系統《");
System.out.println("=》 請輸入對應數字進行操作《");
System.out.println("=======》 1,進貨儲存 《");
System.out.println("=======》 2,修改資訊 《");
System.out.println("=======》 3,查詢庫存 《");
System.out.println("=======》 4,退出作業系統 《");
System.out.println("============================");
int a = sc.nextInt(); //使用者輸入
switch (a){
case 1:adds(); break;
case 2:update(); break;
case 3:select(); break;
case 4:exit(); break;
default:System.out.println("====輸入有誤,請重新輸入====");
menu();
break;
}
}
public static void adds(){ //定義一個存貨方法
System.out.println("=========請輸入貨物名稱=========");
String sname = sc.next();
System.out.println("=========請輸入貨物類型=========");
String sclass = sc.next();
System.out.println("=========請輸入貨物價格=========");
String sprice = sc.next();
System.out.println("=========請輸入貨物數量=========");
String snum = sc.next();
Chaoshi shop1 = new Chaoshi(sname,sclass,sprice,snum);
shop[i] = shop1;
i++;
System.out.println("輸入成功,繼續輸入(1),返回菜單(2)");
int flage = sc.nextInt();
if(flage==1){
adds();
}else menu();
}
public static void update(){ //定義一個修改方法
System.out.println("請輸入商品名稱,為您修改");
String b = sc.next();
for(i=0;i<100;i++){
if(b.equals(shop[i].sname)){
System.out.println("===================查詢結果如下===================");
shop[i].say();
System.out.println("=========請輸入修改後貨物名稱=========");
String sname = sc.next();
System.out.println("=========請輸入修改後貨物類型=========");
String sclass = sc.next();
System.out.println("=========請輸入修改後貨物價格=========");
String sprice = sc.next();
System.out.println("=========請輸入修改後貨物數量=========");
String snum = sc.next();
Chaoshi shop1 = new Chaoshi(sname,sclass,sprice,snum);
shop[i] = shop1;
System.out.println("繼續修改(1),返回菜單(2)");
int flage = sc.nextInt();
if(flage==1){
update();
}else menu();
}
}
}
public static void select(){ //定義一個查詢方法
System.out.println("指定查詢(1),全部查詢(2)");
int a = sc.nextInt();
if(a==1){
System.out.println("請輸入商品名稱,為您查詢");
String b = sc.next();
for(i=0;i<100;i++){
if(b.equals(shop[i].sname)){
System.out.println("===================查詢結果如下===================");
shop[i].say();
System.out.println("繼續查詢(1),返回菜單(2)");
int flage = sc.nextInt();
if(flage==1){
select();
}else menu();
}
}
}else{
for(Chaoshi s:shop){
if(s!=null){
s.say();
}
}
System.out.println("繼續查詢(1),返回菜單(2)");
int flage = sc.nextInt();
if(flage==1){
select();
}else menu();
}
}
public static void exit(){ //定義一個退出方法
System.out.println("===》》》您已退出作業系統《《《===");
System.exit(0);
}
}
public class Chaoshi{ //建立一個超市類
String sname;
String sclass;
String sprice;
String snum;
public Chaoshi(String sname,String sclass,String sprice,String snum){
this.sname = sname;
this.sclass = sclass;
this.sprice = sprice;
this.snum = snum;
}
public void say(){
System.out.println("名稱:"+sname+"\n種類:"+sclass+"\n價格:"+sprice+"\n數量:"+snum+"\n"); //定義一個輸出方式
}
}