JAVA 入門第二章 (面對對象)

来源:http://www.cnblogs.com/coderL/archive/2016/09/24/5903461.html
-Advertisement-
Play Games

本渣渣鴿了一個月終於有時間更新。因為有c++基礎,學起來這章還是比較簡單的,本章我覺得是程式猿質變課程,理解面向對象的思想,掌握面向對象的基本原則以及 Java 面向對象編程基本實現原理,熟練使用封裝、繼承、多態面向對象三大特性,感受和c++之間的異同,下麵是學習路線。 1.類和對象 1-1 什麼是 ...


本渣渣鴿了一個月終於有時間更新。因為有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.繼承 

 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;
}
}

附上運行效果圖

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 學習過Spring框架的人一定都會聽過Spring的IoC(控制反轉) 、DI(依賴註入)這兩個概念,對於初學Spring的人來說,總覺得IoC 、DI這兩個概念是模糊不清的,是很難理解的,今天和大家分享網上的一些技術大牛們對Spring框架的IOC的理解以及談談我對Spring Ioc的理解。 一 ...
  • 2、下載地址:https://github.com/MSOpenTech/redis/releases 3、最新的安裝包: 4、點擊msi文件開始安裝。 5、勾選同意,下一步。 6、使用預設的安裝地址地址,並且將redis安裝路徑添加到系統環境變數。 7、修改埠號為“46379”,添加防火牆例外。 ...
  • import java.util.*;import java.math.*;public class CaculatorLnN { public static void main(String[] args) { // TODO 自動生成的方法存根 int N; System.out.println ...
  • 網上目前還找不到完整的mac下golang環境配置支持,本人配置成功,現在整理分享出來。 mac最好裝下xcode,好像有依賴關係安裝Homebrew打開終端視窗, 粘貼腳本執行/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent. ...
  • 1、考慮用靜態工廠方法代替構造器 類的一個實例,通常使用類的公有的構造方法獲取。也可以為類提供一個公有的靜態工廠方法(不是設計模式中的工廠模式)來返回類的一個實例。例如: 使用靜態工廠方法代替構造器的優勢: 靜態工廠方法有名稱,更易讀。靜態工廠方法能夠使用方法名稱進行自註釋,來描述被返回的對象。例如 ...
  • restful服務中一個重要的特性就是一種資源可以有多種表現形式,在springmvc中可以使用ContentNegotiatingViewResolver這個視圖解析器來實現這種方式。 描述資源的三種形式 一、使用擴展名 http://localhost:8080/test/user.xml 以x ...
  • 獲取數據是數據分析中必不可少的一部分,而網路爬蟲是是獲取數據的一個重要渠道之一。鑒於此,我拾起了Python這把利器,開啟了網路爬蟲之路。 本篇使用的版本為python3.5,意在抓取證券之星上當天所有A股數據。程式主要分為三個部分:網頁源碼的獲取、所需內容的提取、所得結果的整理。 一、網頁源碼的獲 ...
  • gson是一個google的開源項目,支持多種JSON方法,這裡主要講解如何使用gson將json轉換成javaBean。 maven坐標 java代碼: 上述代碼代碼中涉及到java內部類的聲明 ,這裡補充一個知識點,關於java內部類就是在一個類裡面定義另一個類,要聲明一個內部類的語法是: Ou ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...