1. 程式人生 > >JAVA面向物件程式設計題

JAVA面向物件程式設計題

1、定義長方形類,含:

  屬性:寬、高(整型);

  方法:求周長、面積;

  構造方法3個:(1)無參——寬、高預設值為1;(2)1個引數——寬、高均為引數值;(3)2個引數——寬、高各為引數值。

  要求:進行測試。

程式碼如下:

長方形的類:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657package Test1;public class Rectangle {//定義長寬屬性private int iWidth;private int iHeight;
//構造器1public Rectangle(){this.iHeight = 1;this.iWidth = 1;}//構造器2public Rectangle(int iIndex){this.iWidth = iIndex;this.iHeight = iIndex;}//構造器3public Rectangle(int iWidth, int iHeight){this.iHeight = iHeight;this.iWidth = iWidth;}//求周長public int getLength(){return 2*(this.iHeight+this.iWidth);}//求面積public int
 getSquare(){return this.iHeight*this.iWidth;}}測試類:package Test1;public class Test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubRectangle oRec1 = new Rectangle();System.out.println("預設長方形的周長為:"+oRec1.getLength());System.out.println("預設長方形的面積為:"+oRec1.getSquare());
Rectangle oRec2 = new Rectangle(2);System.out.println("一個引數長方形的周長為:"+oRec2.getLength());System.out.println("一個引數長方形的面積為:"+oRec2.getSquare());Rectangle oRec3 = new Rectangle(2,3);System.out.println("兩個引數長方形的周長為:"+oRec3.getLength());System.out.println("兩個引數長方形的面積為:"+oRec3.getSquare());}}

執行結果:

預設長方形的周長為:4

預設長方形的面積為:1

一個引數長方形的周長為:8

一個引數長方形的面積為:4

兩個引數長方形的周長為:10

兩個引數長方形的面積為:6

2、定義圓類,它有一個變數radius(半徑)。從鍵盤輸入資料,通過構造方法傳遞給radius,程式設計計算並輸出圓的周長和麵積(確保輸入的資料不為負數)。

  要求:進行測試。

程式碼如下:

圓的類:

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849package Test2;public class Circle {private double radius;public Circle(double dRadius){this.radius = dRadius;}public double getLength(){return 2*Math.PI*this.radius;}public double getArea(){return Math.PI*this.radius*this.radius;}}測試類:package Test2;import java.util.Scanner;public class Test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubdouble iRadius;Scanner sc = new Scanner(System.in);System.out.print("請輸入圓的半徑:");iRadius = sc.nextDouble();if(iRadius < 0){System.out.println("你輸入的半徑有誤!");}else{Circle oCir = new Circle(iRadius);System.out.println("圓的周長為:"+oCir.getLength());System.out.println("圓的面積為:"+oCir.getArea());}}}

執行結果:

正數時:

請輸入圓的半徑:1

圓的周長為:6.283185307179586

圓的面積為:3.141592653589793

負數時:

請輸入圓的半徑:-1

你輸入的半徑有誤!

3、定義長方體類,定義求底面積、體積的方法。(可利用上述定義的長方形類)

  要求:進行測試。

程式碼如下:

長方體類:

1234567891011121314151617181920212223242526272829303132333435363738394041package Test3;import Test1.Rectangle;public class RecV extends Rectangle{int iLong;public RecV(int iWidth, int iHeight, int iLong){super(iWidth,iHeight);this.iLong = iLong;}public int getBtmArea(){return this.getSquare();}public int getVolume(){return this.getSquare()*this.iLong;}}測試類:package Test3;public class Test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubRecV oRecV = new RecV(1,2,3);System.out.println("長方體的底面積為:"+oRecV.getBtmArea());System.out.println("長方體的體積為:"+oRecV.getVolume());}}

執行結果:

長方體的底面積為:2

長方體的體積為:6

4、定義球類,定義求體積的方法。(可利用上述定義的圓類)

要求:進行測試。

程式碼如下:

球的類:

123456789101112131415161718192021222324252627282930package Test4;import Test2.Circle;public class Bool extends Circle{public Bool(double dRadius) {super(dRadius);// TODO Auto-generated constructor stub}public double getBoolVolume(){return (4/3)*Math.PI*Math.pow(this.radius, 3.0);}}測試類:package Test4;public class Test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubBool oBool = new Bool(1);System.out.println("球的體積為:"+oBool.getBoolVolume());}}

執行結果:

球的體積為:3.141592653589793

5、定義一個計算器類,包括加、減、乘、除運算。

要求:進行測試。

程式碼如下:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950package Test5;public class Calculator {private int iFirstNum;private int iSecondNum;public Calculator(int iFirst, int iSecond){this.iFirstNum = iFirst;this.iSecondNum = iSecond;}public int getAdd(){return this.iFirstNum + this.iSecondNum;}public int getSub(){return this.iFirstNum - this.iSecondNum;}public int getMul(){return this.iFirstNum * this.iSecondNum;}public void getDev(){if(this.iSecondNum ==0){System.out.print("分子不能為零!");}else{System.out.print(this.iFirstNum/this.iSecondNum);}}}測試類:package Test5;public class Test {public static void main(String[] args) {// TODO Auto-generated method stubCalculator oCal = new Calculator(4,2);System.out.println("兩數之和為 :"+oCal.getAdd());System.out.println("兩數之差為:"+oCal.getSub());System.out.println("兩數之積為:"+oCal.getMul());System.out.print("兩數之商為:");oCal.getDev();}}

執行結果:

兩數之和為 :6

兩數之差為:2

兩數之積為:8

兩數之商為:2

7、編寫程式使用複數類Complex驗證兩個複數 2+2i 和3+3i 相加產生一個新的複數5+5i 。複數類Complex滿足如下要求:

(1)屬性:RealPart : int型,代表複數的實數部分;ImaginPart : int型,代表複數的虛數部分

(2)方法:

Complex( ) : 構造方法,將複數的實部和虛部都置0

Complex( int r , int i ) : 構造方法,形參 r 為實部的初值,i為虛部的初值。

Complex complexAdd(Complex a) : 將當前複數物件與形參複數物件相加,所得的結果仍是一個複數值,返回給此方法的呼叫者。

String toString( ) : 把當前複數物件的實部、虛部組合成 a+bi 的字串形式,其中a 和 b分別為實部和虛部的資料。

(3)進行測試。

程式碼如下:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354package Test7;public class Complex {private int iRealPart;private int iImaginPart;public Complex(){iRealPart = 0;iImaginPart = 0;}public Complex(int r, int i){iRealPart = r;iImaginPart = i;}public Complex complexAdd( Complex a ){this.iRealPart += a.iRealPart;this.iImaginPart += a.iImaginPart;return this;}public String toString(){return this.iRealPart+"+"+this.iImaginPart+"i";}}測試類:package Test7;public class Test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stub//複數例項化Complex oFirstNum = new Complex();Complex oFirstNum1 = new Complex(2,3);Complex oSecondNum = new Complex(3,4);oFirstNum.complexAdd(oSecondNum);System.out.println("1。複數之和為:"+oFirstNum.toString());oFirstNum1.complexAdd(oSecondNum);System.out.println("2.複數之和為:"+oFirstNum1.toString());}}

執行結果:

1。複數之和為:3+4i

2.複數之和為:5+7i

8、試編寫Java程式碼實現一個計數器類Computer其中包括:

域value :用來儲存計數器的當前值;

方法increment(): 計數器加一;

方法decrement() :計數器減一;

方法reset():計數器清零。

請編寫並除錯程式。

程式碼如下:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556package Test8;public class Computer {private int value;public Computer(){this.value = 0;}public void increment(){this.value++;}public void decrement(){this.value--;}public void reset(){this.value = 0;}public int getValue(){return this.value;}}測試類:package Test8;public class Test {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubComputer oCount = new Computer();System.out.println("計數器的初始值為:" + oCount.getValue());oCount.increment();oCount.increment();oCount.increment();System.out.println("加三後的值為:" + oCount.getValue());oCount.decrement();System.out.println("減一後的值為:" + oCount.getValue());oCount.reset();System.out.println("初始化後的值為:" + oCount.getValue());}}

執行結果:

計數器的初始值為:0

加三後的值為:3

減一後的值為:2

初始化後的值為:0

相關推薦

JAVA面向物件程式設計

1、定義長方形類,含:  屬性:寬、高(整型);  方法:求周長、面積;  構造方法3個:(1)無參——寬、高預設值為1;(2)1個引數——寬、高均為引數值;(3)2個引數——寬、高各為引數值。  要求:進行測試。程式碼如下:長方形的類:123456789101112131415161718192021222

3.Java面向物件程式設計OOA/OOP/OOD/OOAD()/UML類圖、函數語言程式設計Scala(JVM)---類與物件、封裝繼承多型、構造方法、覆寫/重寫/override

一、緒論 1.面向物件程式設計正規化(C++、Java、Go)------能進行現實生活的抽象。             每個物件都是一個類。類中包含屬性與方法。 OOA:面向物件分析 OOP:面向物件程式設計

JAVA面向物件程式設計之購物車介面的設計與功能的實現

1、小組成員及分工 小組成員 負責工作 蘭澤祥 負責總體介面、Git程式碼庫 吳修恩 負責MVC模式、類名包名的規範化 2、Git 倉庫地址 倉庫地址:https://gitee

Java 面向物件程式設計之多型

轉自:chenssy java提高篇之理解java的三大特性——多型 封裝隱藏了類的內部實現機制,可以在不影響使用的情況下改變類的內部結構,同時也保護了資料。對外界而已它的內部細節是隱藏的,暴露給外界的只是它的訪問方法。 繼承是為了重用父類程式碼。兩個類若存在IS-A的關係就可以使用

Java面向物件程式設計之類和物件

Java程式語言是一種面向物件的程式語言,其特性在於高度的抽象性。那麼,什麼是面向物件呢?面向物件和麵向過程有什麼區別呢?萬物可歸類,什麼是類呢?萬物皆物件,類和物件之間的聯絡是什麼?Java程式的執行需要jvm(Java虛擬機器)的支援,那麼,面向物件程式設計在計算機中怎麼進行記憶體分析;

Java 面向物件程式設計引言

*Java面向物件程式設計是Java語言的核心,Java語言就是面向物件的程式語言,在整個Java語言程式設計過程中,都會涉及到Java程式設計思想,即面向物件思想, 類和物件是 Java 程式的構成核心。圍繞著 Java 類和 Java 物件,有三大基本特性:封裝是 Java 類的編寫規範

Java 面向物件程式設計之四個關鍵字

this,super,static,final是四個常見的類的關鍵字,怎麼樣來描述類的屬性和行為? 如果一個類從另外一個類繼承,我們new這個子類的例項物件的時候,這個子類物件裡面會有一個父類物件。怎麼去引用裡面的父類物件呢?使用super來引用,this指的是當前物件的引用,super是當

Java 面向物件程式設計之介面內部類

介面,內部類,抽象類本質上也是類,是抽象的抽象類,這三種類有各自的特點。 1. 抽象類、 設計與實現的分開 抽象類:定義了抽象方法的類,不能例項化,只能被子類實現 , 用關鍵字abstract修飾。 抽象方法:只定義了方法體,沒有定義內容。 作用:為所有子類建立一

Java面向物件程式設計之三大特性

Java面向物件程式設計作為一種程式設計思想,有三大特性,封裝,繼承,多型。對於一個類而言, 如何封裝 呢?繼承是父類和子類的關係, 繼承關係如何實現的呢?父類和子類繼承時的方法體是怎麼樣的關係呢?多型是多個類之間的關係,類有不同的行為和屬性,其他類也有這樣的方法和屬性,就實現了多型的關係,

java面向物件程式設計以及陣列理解

一、語言的進化史 在計算機語言發展的早期,由於cpu和記憶體的限制,導致說發展很慢。後來由於硬體裝置的革命(即cpu價格的下跌和記憶體數量和容量的上升,記憶體的價格的下跌)和資金的推動(資本家為了提高勞動生產率和剩餘價值),計算機語言開始了高速的進化,從一開始的基本型別到結

java 面向物件程式設計

一直對面向物件程式設計的概念較模糊,今天認真理了一遍,按要求寫了容易理解的小程式模板(PS:內容不重要,關鍵是面向物件的思想,層次等。) 1. 要求 要求此人類必須包含有人的姓名、性別、出生日期等基本屬性(變數)。 要求此人類描述吃飯的方法(函式)和描述睡覺的

JAVA 面向物件程式設計練習(一個回合制的戰鬥遊戲:戰士,騎兵,法師,電腦互相攻擊)

一. 小編有話說 前面一篇文章寫了JAVA面向物件程式設計的思想,本文主要展示關於面向物件程式設計的例項(一個回合制的戰鬥遊戲:戰士,騎兵,法師,電腦互相攻擊),小編的基礎暫時薄弱,如此一來有助於更深入的理解和靈活的運用,以及打下堅實的基礎。 二. 遊戲的要求

JAVA面向物件程式設計基礎

方法: 1、類似函式 public class Demo { int sum() { return 1+1; } public static void main(String[] args) {

JAVA面向物件程式設計——描述一個人類(有姓名、年齡、生日等屬性),並繼承出子類

前言: 面向物件這個概念在很多語言中都有接觸過,尤其在c++中這個概念就是整個語言的核心。那什麼是面向物件?也許我們對它都有個似懂非懂的概念,但無法完全清晰的理解。本文先大概描述面向物件的概念,再通過一個例子來和大家一起認識學習java面向物件。 一、面向

Java面向物件程式設計思想(一)

宣告:學基礎,在校學生,本文所有內容來自純書本,然後通過自己的理解和參考編寫而來,如有說的不對的地方,歡迎評論指錯!(僅做學習交流) 類和物件的建立 類的建立:(public private protected)+ class + 類名 { <類

Java-面向物件程式設計-三大特性之多型

我們前面已經介紹了面向物件程式設計的三大特性之二,今天就介紹最後一個特性-多型。 什麼叫多型?從字面上理解就是多種形態,即對同一個客體,可以有多種不同的形式。就好像糖一樣,有多種口味,你想吃什麼口味的就可以吃什麼口味。但在程式中,卻不是你想要怎樣就怎樣。更多的

Java面向物件程式設計 java實驗報告第三個

1.   RunYear.java  輸出1900到2000年之間的所有潤年 public class RunYear { public static void main(String[] arg

Java面向物件程式設計 實驗報告

一、實驗目的:1. 理解 Java 語言是如何體現面向物件程式設計基本思想的;2. 掌握類的宣告以及物件的建立;3. 瞭解類的成員變數和成員方法的特性以及類的構造方法的使用。二、實驗環境:一臺配置有java環境,裝有eclipse的電腦。三、實驗內容:(寫出主要的內容)(一)

實驗二:Java面向物件程式設計

實驗二 Java面向物件程式設計 目錄 [一、單元測試和TDD](#first) [任務一:實現百分制成績轉成“優、良、中、及格、不及格”五級製成績的功能](#firstTask) [任務二:以TDD的方式研究學習StringBuffer](#SecondTask)

java面向物件程式設計的六大基本原則

1.開閉原則(Open Close Principle) 定義:一個軟體實體如類、模組和函式應該對擴充套件開放,對修改關閉。 開放-封閉原則的意思就是說,你設計的時候,時刻要考慮,儘量讓這個類是足夠好,寫好了就不要去修改了,如果新需求來,我們增加一些類就完事了,原來的