1. 程式人生 > >面向物件-設計一個Location類

面向物件-設計一個Location類

問題

設計一個名為Location的類,定位二維陣列中的最大值及其位置。這個類包括公共的資料域row、 column和maxValue,二位陣列中的最大值及其下標用int型的row和column以及double型的maxValue 儲存。(5分) 編寫下面的方法,返回一個二位陣列中最大值的位置。 public static Location locateLargest(double[][] a) 返回值是一個Location的例項。

下面是自己寫的相關程式碼:

package com.edu.hpu;

class Location{
	private int row;
	private int column;
	private int maxValue;
	public int getRow() {
		return row;
	}
	public void setRow(int row) {
		this.row = row;
	}
	public int getColumn() {
		return column;
	}
	public void setColumn(int column) {
		this.column = column;
	}
	public int getMaxValue() {
		return maxValue;
	}
	public void setMaxValue(int maxValue) {
		this.maxValue = maxValue;
	}

	public  Location getLargest(int[][] array){
		int row=0;
		int column=0;
		//int[][] a=new int[row][column];
		int maxValue=array[0][0];
		for(int i=0;i<array.length;i++){
			for(int j=0;j<array[0].length;j++){
				if(maxValue<array[i][j]){
					row=i;
					column=j;
					maxValue=array[row][column];
				}
			}
		}
		Location ic=new Location();
		ic.row=row;
		ic.column=column;
		ic.maxValue=maxValue;
		ic.getRow();
		ic.getColumn();
		ic.getMaxValue();
		//System.out.println(ic.getRow());
    	return ic;
    	
	}
	
}

public class MaxValue {

	public static void main(String[] args) {
		
		int[][] a={{4,5,8},{55,22,10},{36,12,20}};
		Location ic=new Location();
		ic=ic.getLargest(a);
		System.out.println("該陣列的最大值為:"+ic.getMaxValue()+","+"它的行為:"+ic.getRow()+"它的列為:"+ic.getColumn());

	}

}

執行結果:

下面是在論壇看到的(不太明白):
package test3; 
 
public class Location { 
	private static int row ; 
	private static int column ; 
	private static double maxValue; 
	 
	public Location(int row,int column,double maxValue){ 
		this.row=row; 
		this.column=column; 
		this.maxValue=maxValue; 
	} 
	 
	public String toString(){ 
		return "行="+this.row+" 列="+this.column+" 最大值="+this.maxValue; 
	} 
	 
	 
	//靜態方法實際上不應該這樣返回自身的例項 
	//但是你命題這樣寫的,只能硬著頭皮這麼做了 
	public static Location locateLargest(double[][] a){ 
		row=0; 
		column=0; 
		maxValue=a[0][0]; 
		//遍歷二維陣列 
		for(int i = 0;i<a.length;i++){ 
			 
			for(int j=0;j<a[i].length;j++){ 
				if(a[i][j]>maxValue){ 
					row=i; 
					column=j; 
					maxValue=a[i][j]; 
				} 
			} 
		} 
		return new Location(row,column,maxValue); 
	} 
	 
	public static void main(String args[]){ 
		double[][] a = new double[3][3]; 
		for(int i=0;i<a.length;i++){ 
			for(int j=0;j<a[i].length;j++){ 
				a[i][j]=(i+1)*(j+1); 
			} 
		} 
		 
		System.out.println(Location.locateLargest(a)); 
	} 
 
}

相關推薦

面向物件-設計一個Location

問題 設計一個名為Location的類,定位二維陣列中的最大值及其位置。這個類包括公共的資料域row、 column和maxValue,二位陣列中的最大值及其下標用int型的row和column以及d

例題:定義一個複數Complex,過載運算子“+”、“=”,“*”,“、”,使之能進行復數的加、減、乘、除。...【面向物件設計

題目: 定義一個複數類Complex,過載運算子“+”、“=”,“*”,“、”,使之能進行復數的加、減、乘、除。運算子過載函式作為Complex類得成員函式。程式設計序,分別求兩個複數之和、差、積和

PHP設計模式:自動載入、PSR-0規範、鏈式操作、11種面向物件設計模式實現和使用、OOP的基本原則和自動載入配置

一、類自動載入      SPL函式 (standard php librarys)      類自動載入,儘管 __autoload() 函式也能自動載入類和介面,但更建議使用&nbs

面向物件設計設計模式(二):結構型模式(附 Demo & UML圖)

本篇是面向物件設計系列文章的第三篇,講解的是設計模式中的結構型模式: 外觀模式 介面卡模式 橋接模式 代理模式 裝飾者模式 享元模式 該系列前面的兩篇文章: 面向物件設計的六大設計原則(附 Demo 及 UML 類圖) 面向物件設計的設計模式(一):建

例題:建立一個物件陣列,內放5個學生的資料(學號、成績),用指標指向陣列首元素,輸出第1,3,5個學生的資料。【面向物件設計

題目: 建立一個物件陣列,內放5個學生的資料(學號、成績),用指標指向陣列首元素,輸出第1,3,5個學生的資料。 解答:  程式程式碼如下: #include <iostream>

面向物件設計原則-設計原則

1.共同重用原則(CCP):一組介面中應該是共同重用的。如果重用了這組中 的一個類,那麼就要重用包中的所有的類。相互之間沒有緊密聯絡的類不應該在同一組中。 這個原則強調了分類,就具有相同關係或者關聯比較緊密的類應該分到一組中,方便修改和客戶端的呼叫。 2.共同封閉原則:類庫中的類

面向物件設計之間關係

1. 繼承 is-a A繼承自B:用一條帶空心箭頭的實線表示。 只有當A是一個B時,才用繼承。例如,小轎車是一種車,別墅是一種房。 2. 實現 like a A實現了B:用一條帶空心箭頭的虛線表示。 A具有B的特徵,A像一個B,用實現。例如,人

面向物件設計原則實踐:之五.迪米特原則,介面隔離原則

六、迪米特(第三者互動)原則 1. 定義 每一個軟體單位對其他的單位都只有最少的知識,而且侷限於那些與本單位密切相關的軟體單位。   2. 分析 1) 迪米特法則就是指一個軟體實體應當儘可能少的與其他實體發生相互作用。 這樣,當一個模組修改時,就會盡量少的影響其他的

面向物件設計原則實踐:之四.里氏代換原則

五、里氏代換原則(LSP--Liskov Substitution Principle) 1. 定義 a). 如果對每一個型別為S的物件o1,都有型別為T的物件o2, 使得以T定義的所有程式P在所有的物件o1都代換成o2時,程式P的行為沒有變化, 那麼型別S是型別T的子型別。 b

面向物件設計原則 開放封閉原則(Open Closed Principle)

開放封閉原則(OCP,Open Closed Principle)是所有面向物件原則的核心。   軟體設計本身所追求的目標就是封裝變化、降低耦合,而開放封閉原則正是對這一目標的最直接體現。 其他的設計原則,很多時候是為實現這一目標服務的,例如以里氏替換原則實現最佳的、正確的繼承層次,就能保證不

面向物件設計原則 依賴倒置原則(Dependency Inversion Principle)

依賴倒置原則(Dependence Inversion Principle)是程式要依賴於抽象介面,不要依賴於具體實現。 簡單的說就是要求對抽象進行程式設計,不要對實現進行程式設計,這樣就降低了客戶與實現模組間的耦合。   面向過程的開發

面向物件設計原則 介面分離原則(Interface Segregation Principle)

介面隔離原則   使用多個專門的介面,而不使用單一的總介面,即客戶端不應該依賴那些它不需要的介面。   從介面隔離原則的定義可以看出,他似乎跟SRP有許多相似之處。 是的其實ISP和SRP都是強調職責的單一性, 介面隔離原則告訴我們在定義介面的時候要根據職責定義“較小”的介面

python3__面向物件__靜態方法 / 方法 / 屬性方法 / 例項動態繫結屬性和方法 / 動態繫結屬性和方法

0.普通方法 普通方法訪問類屬性:self.__class__.類屬性名稱 class Test(object): n = 123 def __init__(self, n): self.n = n def tell(self):

面向物件設計模式原則

7種常用的面相物件設計原則 單一職責原則(SRP):一個類只負責一個功能領域中的相應指責,就一個類而言,應該只有一個引起它變化的原因(可以實現低耦合,換句話說就是要承擔的責任少,被複用的就頻繁) 開閉原則(OCP):軟體實體對擴充套件開放,對修改關閉。(可以在新增輔助

面向物件設計三大原則

面向物件設計三大原則--->OO設計原則---->設計模式 (封裝變化點,對介面進行程式設計,多使用組合而不是繼承) 該三大原則應該算是OO的基礎,很多OO設計原則和設計模式都是在此三大原則上面衍生髮展而來。所以對於學習設計模式的人,瞭解這三大原則顯然是非常必要的。 &n

面向物件設計原則之合成複用原則

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

201771010124 王海珍 《面向物件設計java》第十一週總結

第一部分  理論部分   本章節的主要內容為集合 (1)Java集合框架;    a:將集合的介面與實現分離;    b:Collection介面,集合類的基本介面。這個介面有兩個基本方法 public interface Collecti

面向物件設計原則之介面隔離原則

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

面向物件設計原則之依賴倒轉原則

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

面向物件設計原則之迪米特法則

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!