本渣渣鴿了一個月終於有時間更新。因為有c++基礎,學起來這章還是比較簡單的,本章我覺得是程序猿質變課程,理解面向對象的思想,掌握面向對象的基本原則以及 Java 面向對象編程基本實現原理,熟練使用封裝、繼承、多態面向對象三大特性,感受和c++之間的異同,下面是學習路線。
1.類和對象
1-1 什麼是類和對象
1-2 如何定義 Java 中的類
1-3 如何使用 Java 中的對象
1-4 Java 中的成員變量和局部變量
1-5 Java 中的構造方法
1-6 Java 中的 static 使用之靜態變量
1-7 Java 中的 static 使用之靜態方法
1-8 Java 中的 static 使用之靜態初始化
2. 封裝
2-1 什麼是 Java 中的封裝
2-2 使用包管理 Java 中的類
2-3 Java 中的訪問修飾符
2-4 Java 中的 this 關鍵字
2-5 什麼是 Java 中的內部類
3-1 Java 中的繼承
3-2 Java 中的方法重寫
3-3 Java 中的繼承初始化順序
3-4 Java 中的 final 的使用
3-5 Java 中的 super 的使用
3-6 Java 中的 Object 類
4.多態
4-1 Java 中的多態
4-2 多態中的引用類型轉換
4-3 Java 中的抽象類
4-4 Java 中的接口
4-5 UML
再配上一個比較綜合練習題,編寫一個控制台版的租車系統。
1.展示所有可租車輛
2.選擇車型,租車量,租車天數
3.顯示租車清單,包括總金額,總載貨量,以及總計價格
最後附上我自己的源碼
package 其其租車系統;
import java.util.Scanner;
import javax.print.DocFlavor.INPUT_STREAM;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
Smallcar c1=new Smallcar();
int smallcarmoney[]=new int[10];
int smallcarpeople[]=new int[10];
Bus c2=new Bus();
int busmoney[]=new int[10];
int buspeople[]=new int[10];
Pika c3=new Pika();
int pikamoney[]=new int[10];
int pikapeople[]=new int[10];
int pikagoods[]=new int[10];
Lorry c4=new Lorry();
int lorrymoney[]=new int[10];
int lorrygoods[]=new int[10];
System.out.println("歡迎使用其其租車系統");
System.out.println("1.租車 2.退出");
int num1=input.nextInt();
switch (num1) {
case 1:
System.out.println("車型如下");
System.out.println("1.小車 載客:4人 拉貨0kg 租金:100圓/天");
System.out.println("2.巴士 載客:30人 拉貨0kg 租金:500圓/天");
System.out.println("3.皮卡 載客:4人 拉貨200kg 租金:200圓/天");
System.out.println("4.卡車 載客:0人 拉貨2000kg 租金:500圓/天");
System.out.println("請輸入一共要租幾輛車");
int num2=input.nextInt();
for(int i=1;i<=num2;i++){
System.out.println("請選擇第"+i+"輛車型號");
int a=input.nextInt();
switch (a) {
case 1:
smallcarpeople[i]=c1.fun2();
smallcarmoney[i]=c1.money();
break;
case 2:
buspeople[i]=c2.fun2();
busmoney[i]=c2.money();
break;
case 3:
pikapeople[i]=c3.fun2();
pikamoney[i]=c3.money();
pikagoods[i]=c3.func1();
break;
case 4:
lorrymoney[i]=c4.money();
lorrygoods[i]=c4.func1();
break;
default:
System.out.println("選擇車型不存在");
break;
}
}
int money1=0;
for(int a:smallcarmoney){
money1+= a;
}
int money2=0;
for(int b:busmoney){
money2+= b;
}
int money3=0;
for(int c:lorrymoney){
money3+= c;
}
int money4=0;
for(int d:pikamoney){
money4+=d;
}
int money=money1+money2+money3+money4;
int people1=0;
for(int e:buspeople){
people1+=e;
}
int people2=0;
for(int f:smallcarpeople){
people2+=f;
}
int people3=0;
for(int g:pikapeople){
people3+=g;
}
int people=people1+people2+people3;
int goods1=0;
for(int h:lorrygoods){
goods1+=h;
}
int goods2=0;
for(int j:pikagoods){
goods2+=j;
}
int good=goods1+goods2;
System.out.println("共可載"+people+"個人");
System.out.println(" 共可載"+good+"kg貨物");
System.out.println("請輸入租車天數");
int days=input.nextInt();
System.out.println("合計費用"+days*money+"圓");
break;
case 2:
System.out.println("歡迎下次光臨");
break;
default:
System.out.println("輸入錯誤");
break;
}
}
}
package 其其租車系統;
public abstract class Car {
public abstract int money();
}
package 其其租車系統;
public interface carrygoods {
int func1();
}
package 其其租車系統;
public interface carrypeople {
int fun2();
}
package 其其租車系統;
public class Smallcar extends Car implements carrypeople{
public int money() {
// TODO Auto-generated method stub
return 100;
}
@Override
public int fun2() {
// TODO Auto-generated method stub
return 4;
}
}
package 其其租車系統;
public class Lorry extends Car implements carrygoods {
public int money() {
// TODO Auto-generated method stub
return 500;
}
@Override
public int func1() {
// TODO Auto-generated method stub
return 2000;
}
}
package 其其租車系統;
public class Pika extends Car implements carrygoods,carrypeople {
public int money() {
// TODO Auto-generated method stub
return 200;
}
@Override
public int fun2() {
// TODO Auto-generated method stub
return 4 ;
}
@Override
public int func1() {
// TODO Auto-generated method stub
return 200;
}
}
package 其其租車系統;
public class Bus extends Car implements carrypeople{
public int money() {
// TODO Auto-generated method stub
return 500;
}
@Override
public int fun2() {
// TODO Auto-generated method stub
return 30;
}
}
附上運行效果圖
