概述
问题
设计一个名为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类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复