java面向对象编程求帮忙一共三个类:ScoreArray.java、StudentScoreArray.java和Test1.java , 具体为:
public class ScoreArray {
private int[] scores;
private int scoreCount;
public int[] getScores() {
return scores;
}
public int getScoreCount() {
return scoreCount;
}
//构造函数
public ScoreArray(int[] scores) {
this.scores = scores;
for (int score : scores) {
if (score = 0score = 100) {
this.scoreCount;
}
}
}
//求最大值
public int getMax() {
int[] scores = this.scores;
int temp;
for (int i = 0; iscores.length; i) {
for (int j = 0; jscores.length - 1 - i; j) {
if (scores[j]scores[j1]) {
temp = scores[j];
scores[j] = scores[j1];
scores[j1] = temp;
}
}
}
return scores[scores.length - 1];
}
//求最小值
public int getMin() {
int[] scores = this.scores;
int temp;
for (int i = 0; iscores.length; i) {
for (int j = 0; jscores.length - 1 - i; j) {
if (scores[j]scores[j1]) {
temp = scores[j];
scores[j] = scores[j1];
scores[j1] = temp;
}
}
}
return scores[0];
}
//求均值
public double getAvg() {
int sum = 0;
for (int score : this.scores) {
sum= score;
}
return new BigDecimal(sum).divide(
new BigDecimal(this.scores.length),
2, BigDecimal.ROUND_HALF_UP).doubleValue();
}
//排序
public void sort() {
int temp;
for (int i = 0; ithis.scores.length; i) {
for (int j = 0; jthis.scores.length - 1 - i; j) {
if (this.scores[j]this.scores[j1]) {
temp = this.scores[j];
this.scores[j] = this.scores[j1];
this.scores[j1] = temp;
}
}
}
}
//静态说明类
public static void explain() {
System.out.println("本类[ScoreArray]实现了数组的:求最值[getMax()]、求均值[getAvg()]和排序[sort()]方法");
}
}
public class StudentScoreArray extends ScoreArray {
public StudentScoreArray(int[] scores) {
super(scores);
}
//统计
public void statistic() {
super.sort();
MapInteger, Integer map = new LinkedHashMap();
for (int i : super.getScores()) {
if (map.containsKey(i)) {
map.put(i, map.get(i)1);
} else {
map.put(i, 1);
}
}
map.forEach((k, v) - System.out.println("分数为["k"]的人数为:["v"]"));
}
//静态说明类
public static void explain() {
System.out.println("本类[StudentScoreArray]实现了数组的:求最值[getMax()]、求均值[getAvg()]、排序[sort()]和分布统计[statistic()]方法");
}
}
public class Test1 {
public static void main(String[] args) {
int[] scores = {59, 60, 82, 58, 71, 99, 0, 59, 65};
ScoreArray scoreArray = new ScoreArray(scores);
ScoreArray.explain();
System.out.print("数组内容:[");
for (int i : scoreArray.getScores()) {
System.out.print(i" ");
}
System.out.println("]");
System.out.println("有效值个数:"scoreArray.getScoreCount());
System.out.println("最大值:"scoreArray.getMax());
System.out.println("最小值:"scoreArray.getMin());
System.out.println("平均值:"scoreArray.getAvg());
scoreArray.sort();
System.out.print("排序后数组内容:[");
for (int i : scoreArray.getScores()) {
System.out.print(i" ");
}
System.out.println("]");
System.out.println("");
System.out.println("========华丽的分割线========");
System.out.println("");
StudentScoreArray studentScoreArray = new StudentScoreArray(scores);
StudentScoreArray.explain();
System.out.print("数组内容:[");
for (int i : studentScoreArray.getScores()) {
System.out.print(i",");
}
System.out.println("]");
System.out.println("有效值个数:"studentScoreArray.getScoreCount());
System.out.println("最大值:"studentScoreArray.getMax());
System.out.println("最小值:"studentScoreArray.getMin());
System.out.println("平均值:"studentScoreArray.getAvg());
studentScoreArray.sort();
System.out.print("排序后数组内容:[");
for (int i : studentScoreArray.getScores()) {
System.out.print(i" ");
}
System.out.println("]");
System.out.println("分数分布统计:");
studentScoreArray.statistic();
}
}
其中对StudentScoreArray类我要特别说明一下:
统计分布情况时,使用了Map,map是一种key-value的数据结构,其有个特点被我所利用:一个map中只能同时存在一个key,所以我以分数为key,以数量为value,遍历分数数组时 , 如果是第一次遇到这个key(分数) , 则将其value(数量)置为1;如果已经不是第一次遇见了,则将其value(数量)置为value1(数量1) 。另外需要遍历这个map实现统计结果的打印,我这里使用了java8以后才支持的Lambda表达式,所以你要运行这个程序必须要使用jdk1.8以上的版本 。如果你觉得这样不妥,可以网上再搜一下map的遍历方式 。
运行结果:
啊 代码又一坨的的挤在一起了 , 百度知道这个真是无语 , 我把几个关键的地方截个图给你康康:
ScoreArray.java
成员变量和构造函数
忘了说了,构造的同时还统计了有效分数(0~100)的数量
求最大值
冒泡排序后取最大值
求最小值
冒泡排序后取最小值
求均值
利用java 的BigDecimal类解决除法运算精度的问题,四舍五入并保留了两位小数
排序
就是冒泡排序,从小到大
静态的文本说明
StudentScoreArray.java:
继承
分数分布统计
注意我说的map那里
静态说明文本
Test1.java:
测试用例都使用的数组:int[] scores = {59, 60, 82, 58, 71, 99, 0, 59, 65};
JAVA语言 采用面向对象程序设计思想编写程序计算 n!,要求使用接口 和抽象类实现 。急求全部代码大神有急用采用OOP思想的Java代码如下:
public class Test {
public static void main(String[] args) {
int n = 5;
IntNumber obj = new IntNumber(n);
int f = obj.fac();
System.out.println(n" ! = "f);
}
}
/**
* 数值抽象类
*/
abstract class Number {
/**
* 数值
*/
protected int num;
}
/**
* 计算接口
*/
interface Calculate {
/**
* 计算阶乘的方法
* @return 阶乘
*/
int fac();
}
/**
* 整数类
*/
class IntNumber extends Number implements Calculate {
//构造方法
public IntNumber(int num) {
this.num = num;
}
@Override
public int fac() {
if(num0) {
return -1;
}
if(num == 0 || num == 1) {
return 1;
}
int f = 1;
for(int i=2; i=num; i) {
f *= i;
}
return f;
}
}
运行测试:
5 ! = 120
采用Java语言面向对象思想,编写程序,七个要求7个代码public
class
Person
{
//(1)
设计一个类
人员,包含三个成员变量:姓名、年龄、性别 。
private
String
name;
private
int
age;
private
String
sex;
public
String
getName()
{
return
name;
}
public
void
setName(String
name)
{
this.name
=
name;
}
public
int
getAge()
{
return
age;
}
public
void
setAge(int
age)
{
this.age
=
age;
}
public
String
getSex()
{
return
sex;
}
public
void
setSex(String
sex)
{
this.sex
=
sex;
}
}
//(2)
设计员工和顾客两个类为
人员类的子类,员工类包含一个成员变量:职称级别;顾客包含一个成员变量:账户余额 。
class
worker
extends
Person{
private
String
Title_Level;
public
String
getTitle_Level()
{
return
Title_Level;
}
public
void
setTitle_Level(String
title_Level)
{
Title_Level
=
title_Level;
}
}
class
Customer
extends
Person{
private
int
Account_balance;
public
int
getAccount_balance()
{
return
Account_balance;
}
public
void
setAccount_balance(int
account_balance)
{
Account_balance
=
account_balance;
}
}
//(3)
设计一个类
取款机包含两个成员方法:取款,查询账户 。
interface
ATM{
void
Teller(Customer
cus);
void
Checkaccount(Customer
cus);
}
//4)
实现取款机的取款方法,
//当顾客来取钱但是账户余额不足时抛出异常“余额不足”并显示,
//无论取款是否发生异常,最终取款方法需要执行“退卡”操作 。
class
ATMimpl
implements
ATM{
public
void
Checkaccount(Customer
cus)
{
}
public
void
Teller(Customer
cus)
{
}
}
用java采用面向对象思想设计求两点间的距离,求代码import java.util.Scanner;
public class Demo
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
Point p1,p2;
System.out.println("请输入第1个点的x、y坐标:");
p1=new Point(sc.nextDouble(),sc.nextDouble());
System.out.println("请输入第2个点的x、y坐标:");
p2=new Point(sc.nextDouble(),sc.nextDouble());
System.out.println("点" p1 "与点" p2 "的距离是" p1.distance(p2));
}
}
class Point
{
Point(double x,double y)
{
this.x=x;
this.y=y;
}
public String toString()
{
return "(" x "," y ")";
}
double distance(Point p)
{
return Math.sqrt(Math.pow(this.x-p.x,2) Math.pow(this.y-p.y,2));
}
private double x,y;
}
请用java中面向对象的思想用代码描述如下内容:把 人 封装成一个类Person,继承这个类 变有了 人应该有的属性
把 家庭成员关系封装一个类Family,继承这个类有了家庭关系的属性
把工作封装成一个接口Jop , 继承这个接口实现了工作的方法
由于Person 和 Family 属性都是固定的 , 即每个人的情况基本都一样所以封装成类
Jop 则是因为 每个人的工作不一样,所有做成接口,究竟是什么样的工作让这个人来实现
这里Person 和 Family需要的属性并不多,所以我统一将他们封装了一个类 Person 实现代码如下:
public class XiaoHong extends Person implements Jop {
public XiaoHong(String name, String sex, String Father, String Mother,
String Son) {
super(name, sex, Father, Mother, Son);
// TODO Auto-generated constructor stub
}
public static void main(String[] args) {
XiaoHong xiaohong = new XiaoHong("小红","女","李雷", "韩梅梅", "讨厌啦!人家还?。?);
System.out.println(xiaohong);
xiaohong.work();
}
@Override
public void work() {
System.out.println("我是一个高中生");
}
}
/********************************************************************************/
public class Person {
private String name = "I Don't Know";
private String sex = "I Don't Know";
private String Father = "I Don't Know";
private String Mother = "I Don't Know";
private String Son = "I Don't Know";
public Person(String name, String sex, String myFather, String myMother,
String mySon) {
super();
this.name = name;
this.sex = sex;
this.Father = myFather;
this.Mother = myMother;
this.Son = mySon;
}
public String getName() {
return name;
}
public String getSex() {
return sex;
}
public String getMyFather() {
return Father;
}
public String getMyMother() {
return Mother;
}
public String getMySon() {
return Son;
}
@Override
public String toString() {
return "Person [name="name", sex="sex", Father="
Father", Mother="Mother", Son="Son
"]";
}
}
/******************************************************************************/
public interface Jop {
public void work();
}
Java面向对象程序编程public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个开始数字:");
int a = 0;
try {
a = scanner.nextInt();
} catch (Exception e) {
System.out.println("输数字不合法");
return;
}
System.out.println("请输入一个结束数字:");
int b = 0;
try {
b = scanner.nextInt();
} catch (Exception e) {
System.out.println("输数字不合法");
return;
}
int sum = 0;
if (ab) {
for (int i = b; i = a; i) {
sum = sumi;
}
} else {
for (int i = a; i = b; i) {
sum = sumi;
}
}
System.out.println(sum);
}
【面向对象java代码 java面向对象编程】面向对象java代码的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于java面向对象编程、面向对象java代码的信息别忘了在本站进行查找喔 。
推荐阅读
- r17手机怎么显示运营商,手机怎样显示运营商
- 大海哥游戏解说丛林冒险2,丛林大冒险歌曲
- 查询python已安装模块,python查看已安装模块
- java代码嵌入jsp java代码嵌入html
- 自媒体新流量如何变现,自媒体流量变现是什么意思
- 虚拟主机cpu满了,虚拟机cpu占用高
- mysql错误日志怎么找 mysql错误日志在哪里
- 房子怎么设置两个路由器,房子怎么设置两个路由器的网络
- 大学体育游戏教案,大学体育游戏教案及图文