1. 程式人生 > >自定義類-矩形(Rectangle Class)

自定義類-矩形(Rectangle Class)

為了方便,一個source檔案中包括了實體類和測試類兩個類。

麻雀雖小,五臟俱全,慢慢的體會到OOP的博大精深了。

程式碼如下:

package example;
//JHTP Exercise 8.4: Rectangle Class
//by [email protected]
/**(Rectangle Class) Create a class Rectangle with attributes length and 
 * width, each of which defaults to 1. Provide methods that calculate the
 *  rectangle’s perimeter and area. It has set and get methods for both 
 *  length and width. The set methods should verify that length and width 
 *  are each floating-point numbers larger than 0.0 and less than 20.0. 
 *  Write a program to test class Rectangle.
*/
import java.util.Scanner;

class Rectangle {
	private double length=1;
	private double width=1;
	
	public double getLength(){	
		return this.length;	
	}
	public double getWidth(){	
		return this.width;	
	}
	
	public void setLength(double length){	
		if (length<0.0 || length>20.0){
			throw new IllegalArgumentException ("長度不在正確範圍內!");
		}
		this.length=length;
	}
	public void setWidth(double width){
		if (length<0.0 || length>20.0){
			throw new IllegalArgumentException ("寬度不在正確範圍內!");
		}
		this.width=width;	
	}
	
	public	double calcPerimeter(){
		return 2*(this.length+this.width);
	}
	
	public	double calcArea(){
		return this.length*this.width;
		}
}


public class RectangleTest {

	public static void main(String[] args) {

		Scanner input=new Scanner(System.in);
		Rectangle r1=new Rectangle();
		Rectangle r2=new Rectangle();
		Rectangle r3=new Rectangle();
		double length=0;
		double width=0;
		
		r1.setLength(2.5);
		r1.setWidth(3.5);
		r2.setLength(16.5);
		r2.setWidth(19.8);
		
		System.out.printf("預定義矩形1長度:%.2f,寬度:%.2f\n",r1.getLength(),r1.getWidth());
		System.out.printf("預定義矩形1周長:%.2f,面積:%.2f\n\n",r1.calcPerimeter(),r1.calcArea());
		System.out.printf("預定義矩形2長度為:%.2f,寬度為:%.2f\n",r2.getLength(),r2.getWidth());
		System.out.printf("預定義矩形2周長:%.2f,面積:%.2f\n\n",r2.calcPerimeter(),r2.calcArea());
		
		System.out.printf("請輸入自定義矩形的長和寬:");
		length=input.nextDouble();
		width=input.nextDouble();
		r3.setLength(length);
		r3.setWidth(width);
		System.out.printf("自定義矩形3長度為:%.2f,寬度為:%.2f\n",r3.getLength(),r3.getWidth());
		System.out.printf("自定義矩形3周長:%.2f,面積:%.2f\n\n",r3.calcPerimeter(),r3.calcArea());
		
		}		
}

相關推薦

定義-矩形Rectangle Class

為了方便,一個source檔案中包括了實體類和測試類兩個類。 麻雀雖小,五臟俱全,慢慢的體會到OOP的博大精深了。 程式碼如下: package example; //JHTP Exercise 8.4: Rectangle Class //by [email 

Jasper Report之定義組件Custom Visualization環境配置

win 進行 studio one component add 。。 版本 inf Jasper Report提供的功能已經足夠強大了,但是仍不能完全對接客戶的需求,因此需要我們自定義組件完成對我們Report的設計,開發前的環境配置還是個麻煩事。。。 系統:Linux I

vue中定義組件插件

comment tty index all target mark cal ali lan vue中自定義組件(插件) 原創 2017年01月04日 22:46:43 標簽: 插件 在vue項目中,可以自定義組件像vue-resource一樣使用Vue.use(

Xamarin定義佈局系列——ListView的一個定義實現ItemsControl橫向列表

原文: Xamarin自定義佈局系列——ListView的一個自定義實現ItemsControl(橫向列表) 在以前寫UWP程式的時候,瞭解到在ListView或者ListBox這類的列表空間中,有一個叫做ItemsPannel的屬性,它是所有列表中子元素實際的容器,如果要讓列表進行橫向排列,只需要在Xam

VSCode 如何操作使用者定義程式碼片段快捷鍵

如何操作使用者自定義程式碼片段(快捷鍵)? 第一步:檔案==>首選項==>使用者程式碼片段 第二步:選擇程式碼片段檔案 html.json   第三步:輸入要自定義的快捷鍵 和 模板程式碼段 { "vh": { "prefix

Django 框架中的定義模板標籤template.Library()

某一些標籤(例如:選單欄、css、JS、以及一些複雜計算後的資料等)需要我們自定義。 然後再在指定的html中引用並顯示。 之所以要用到標籤,主要作用就是想讓一些內容在多個模板(HTML)中都要有,比如選單欄。 我們絕對不想在每個檢視函式(views中)都寫一次這些變數內容。 即每個頁面

SSD-Tensorflow 目標檢測定義資料集VOC2007格式

一、準備 搭建SSD框架,下載解壓即可 下載pascalvoc資料,自己的資料根據voc格式改寫(圖片的名稱,不用拘泥於6位數字,其他命名也可以)資料集下載點選 解壓後不要混合在一個資料夾下 VOCtrainval用來訓練,VOCtest用來測試。 VOCtrai

SpringBoot定義配置檔案xxx.properties

轉載 :https://www.cnblogs.com/V1haoge/p/7183408.htmlSpringBoot中免除了大部分手動配置,但是對於一些特定的情況,還是需要我們進行手動配置的,SpringBoot為我們提供了application.properties配置檔案,讓我們可以進行自定義配置,來

Rabbit MQ 定義監聽器容器Listener Container的啟動與停止

專案中會遇到,MQ佇列的監聽是在某一前提條件準備好的情況下才啟動,比如MQ接收到一系列資料,這些資料的儲存依賴於另外一個MQ訊息的一些配置接收之後才能完成。 指定屬性autoStartup為false,並啟動對應的listener id @RabbitHandl

spring-security 個性化使用者認證流程——定義登入頁面可配置

1.定義自己的登入頁面我們需要根據自己的業務系統構建自己的登入頁面以及登入成功、失敗處理在spring security提供給我的登入頁面中,只有使用者名稱、密碼框,而自帶的登入成功頁面是空白頁面(可以重定向之前請求的路徑中),而登入失敗時也只是提示使用者被鎖定、過期等資訊。 在實際的開發中,則需要更

微信小程式之——定義分享按鈕完整版

1.宣告 onShareAppMessage 函式   onShareAppMessage() {          return {        title: '彈出分享時顯示的分享標

定義標籤庫Tag library

簡介 JSP標籤庫技術可以讓我們定製自己的標籤。 我們前邊講解了JSP動作標籤,動作標籤本質上就是一段Java程式碼,在JSP頁面被轉換為Servlet期間,JSP引擎解析到JSP檔案就會將動作標籤轉換為我們預先定義好的Java程式碼。 同樣,自定義標籤實際上一個實現了特定介面

配置RedisTemplate、JedisPoolConfig、JedisConnectionFactory+定義序列化 java方式

java方式配置RedisTemplate   //spring注入ben    //@Bean(name = "redisTemplate") public RedisTemplate initRedisTemplate(){ JedisPoolConfig poolCo

定義字典樹字首樹

通過學習自定義字典樹,瞭解字典樹這一資料結構。   之前的二分搜尋樹(二叉樹)、堆(完全二叉樹)、線段樹(平衡二叉樹)都是基於二叉樹。而字典樹是一種多叉樹。     如果有n個條目,使用樹結構查詢的時間複雜度為O(log n),如果有100

定義線段樹區間樹

通過學習自定義線段樹(區間樹),瞭解線段樹這一資料結構。 線段樹首先是平衡二叉樹。   用例:查詢一個區間[i,j]的最大值,最小值,或者區間數字和等。 實質:基於區間的統計查詢。 為什麼用線段樹:   使用陣列

Qt之定義控制元件開關按鈕

簡述 接觸過iOS系統的童鞋們應該對開關按鈕很熟悉,在設定裡面經常遇到,切換時候的滑動效果比較帥氣。 通常說的開關按鈕,有兩個狀態:on、off。 下面,我們利用自定義控制元件來實現一個開關按鈕。 原理 重寫滑鼠按下事件(mousePres

Android定義View-TitleBar標題欄詳細說明

我們在開發Android介面時常常要在許多頁面中共用風格相似的標題欄,為了減少重複性工作我們可以將標題欄做成一個通用的自定義控制元件。 我將通過兩種形式的自定義方式介紹自定義TitleBar 第一種方式(不涉及自定義屬性) 首先通過在Layout中建一個佈局檔案先確定Ti

C# WinForm中如何定義config檔案XML檔案,並且讀取和儲存它

我這裡以連結資料庫為例子, 其中書寫的Config的xml檔案如下: <?xml version="1.0" encoding="utf-8"?> <configuration>   <appSettings>     <add k

儲存過程、觸發器和使用者定義函式實驗 儲存過程

儲存過程、觸發器和使用者自定義函式實驗 實驗內容一 練習教材中儲存過程、觸發器和使用者自定義函式的例子。教材中的BookSales資料庫,在群共享中,檔名為BookSales.bak。 實驗內容二 針對附件1中的教學活動資料庫,完成下面的實驗內容。 1、儲存過程 (

iOS開發之定義TabBarController-present模態出控制器

如上圖這種點選TabBar中間Button時present(模態)出控制器,而點選TabBar其它的Button則是蘋果預設的直接切換檢視的方式,現在很多APP都在使用,特別是直播APP,基本都把直播端模組放在這,最近在仿喵播時正好做到這,就想在網上找