1. 这份Java作业该怎么实现
所有图形的超类:提供公有属性和方法
package test;public abstract class Geometry {protected double girth;protected double area;public double getGirth() {return girth;}public double getArea() {return area;}public void shoot(){System.out.println("周长为:"+girth);System.out.println("面积为:"+area);}}圆
package test;public class Circle extends Geometry{public static final double pi = 3.1415926;public Circle(double radius){this.girth = 2*pi*radius;this.area = pi*(radius*radius);}}矩形
package test;public class Rec extends Geometry{public Rec(double w,double h){this.girth = (w+h)*2;this.area = w*h;}}三角形
package test;public class Triangle extends Geometry{public static boolean check(double l1,double l2,double l3){if(l1+l2>l3&&(l1-l2l1&&(l3-l2l2&&(l1-l3<l2||l3-l1<l2)){return true;}else{System.out.println("不是一个三角形!");return false;}}public Triangle(double l1,double l2,double l3){this.girth = l1+l2+l3;double p = (l1 + l2 + l3) / 2;this.area = Math.sqrt(p * (p - l1) * (p - l2) * (p - l3));}}程序主类
package test;import java.util.Scanner;public class Test09 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true){ System.out.println("请选择图形:1 圆 2 矩形 3 三角形 9 退出"); int i = sc.nextInt(); Geometry g = null; switch(i){ case 1: System.out.println("请输入半径:"); double r = sc.nextDouble(); while(!checkNumber(r)){ r = sc.nextDouble(); } g = new Circle(r); break; case 2: System.out.println("请输入宽:"); double w = sc.nextDouble(); while(!checkNumber(w)){ w = sc.nextDouble(); } System.out.println("请输入高:"); double h = sc.nextDouble(); while(!checkNumber(h)){ h = sc.nextDouble(); } g = new Rec(w,h); break; case 3: System.out.println("请输入第一条边长:"); double l1 = sc.nextDouble(); while(!checkNumber(l1)){ l1 = sc.nextDouble(); } System.out.println("请输入第二条边长:"); double l2 = sc.nextDouble(); while(!checkNumber(l2)){ l2 = sc.nextDouble(); } System.out.println("请输入第三条边长:"); double l3 = sc.nextDouble(); while(!checkNumber(l3)){ l3 = sc.nextDouble(); } if(Triangle.check(l1, l2, l3)){ g = new Triangle(l1,l2,l3); } break; case 9: System.exit(0); break; } if(g!=null){ g.shoot(); } } } public static boolean checkNumber(double a){ if(a<=0){ System.out.println("请输入整数:"); return false; }else{ return true; } }}
2. Java作业,请问这个怎么做
第一题,没猜错的话,里面那个是if(a==5) a=10; 最后结果 s=20;
2.第二题
3. 请教一道java作业选择题
类B继承类A,类B对类A的getNumber() 方法进行了重写,但返回值类型不同(byte与short)。关于重写,遵循以下的规则:
(1)重写方法必须和被重写方法具有相同的参数列表,返回类型必须和被重写方法的返回类型相同或者是返回类型的子类型。
(2)重写方法的访问控制修饰符不能比被重写方法更严格(比如一个在父类中声明为public的方法重写成一个protected的方法)。
(3)只有实例方法才能被重写,超类中的final方法不能被重写。
(4)重写方法不能抛出新的检查异常,或者是抛出比被重写方法声明的检查异常更广泛的检查异常。
(5)注意一种特殊情况:如果超类的方法版本中声明了检查异常,但重写的子类方法中没有声明,这时如果使用多态的方式进行调用,那么编译器认为你调用的是声明了异常的方法。
(6)尽管多态是在编译时确定对象的类型,但在编译时,还是根据父类的方法声明进行程序检查。因此,如果子类中定义的方法,在父类中没有定义,则会出项编译错误。
4. java的简单的习题,要详细的答案
arr是二维数组,我们可以这样理解二维数组:二维数组其实就是存放一维数组的一维数组(即元素是一维数组)
所以一个二维数组的长度,就是里面一维数组的个数,所以:arr.length就是 2
arr[1].length就是指二维数组里面第一个元素的长度(因为其元素是一维数组,所以有长度)
数组下标是从0开始 所以第一个是{40,30}很明显长度是2
所以答案是:D.2 2
希望对你有帮助
5. java作业题,都在这里了,希望你帮忙解答下
1选择题
1,B
2.D
3.D
2.int i = 30;
double d[] = new double[30];
char[] r = new char[30];
int[] i = {3,4,5,6};
float f[] ={2.3F,3.5F,6.6F};
char[] c = new char[3];
3. int类型,最小为0,a[2]
4. double[] d = new double[10];
d[9] = 5.5D;
double result = d[0] + d[1];
5. public static void method1(int n, int m) {
n += m;
method2((int) 3.4);
}
public static int method2(int n) {
if (n > 0)
return 1;
else if (n == 0)
return 0;
else
return -1;
}
6.
public double getPromotion(double amount, double percent)
public void print(int year, int month)
public double sqrt(double d)
public boolean isOdd(int i);
public void printMsg(int times);
public double getLoanMonthlyPayment(double totalMoney, int loanYears, double interest);
public Char toUpperCase(char c);
public static void question1() { Scanner scanner = new Scanner(System.in); double[] scores = new double[10]; int i = 0; double totalScore = 0; while (i d[i]) { min = d[i]; } if (max < d[i]) { max = d[i]; } } System.out.println("最大值" + max); System.out.println("最小值" + min); } public static int average(int[] array) { int total = 0; for (int i = 0; i < array.length; i++) { total += array[i]; } return total / array.length; } public static double average(double[] array) { double total = 0; for (int i = 0; i < array.length; i++) { total += array[i]; } return total / array.length; } public boolean equals(int[] list1, int[] list2) { if (list1 == null) { return false; } if (list2 == null) { return false; } if (list1.length != list2.length) { return false; } for (int i = 0; i < list1.length; i++) { if (list1[i] != list2[i]) { return false; } } return true; }
6. JAVA程序设计课程作业,请高手帮忙啊
1.ABD 自动装箱拆箱,byte的范围不能超过255
2.BCD false关键字必须小写,且Java不支持0转false,C/C++中支持
3.ACD abstract抽象必须被继承,不能被实例化,final类不能被继承
4.ACD +在字符串操作中用作连接符,三元运算符A? B:C若表达式A为真,则返回B的值,若A为假,返回C的值
5.AC 标识符命名规则:以英文字母或_$开头,包括英文字母,数字_$,不能是Java保留关键字
6.AC 父类接受子类对象,自动完成类型转换,这叫安全的向上转型
7.BC 系统给引用类型赋的初值都是NULL而String是一个引用类型
8.BCD 基本概念
9.BCD 方法的名字和方法参数合起来叫做:方法标签,方法由方法标签唯一标示!方法的重载要求方法名相同的情况下,来区别不同的方法,所以只能靠参数的不同来区别!
10.BCD 这题出得真烂,也不给出是哪里定义的paint()方法,这里姑且当做Swing中的一个方法来对待。。
以下是判断题:
1.A java只支持单继承
2.A 高级的异常类放前面,后面的将无用
3.A 浮点数也可以
4.B
5.A 区分
6.A 抽象类不一定要有抽象方法
7.B 都转为数据类型最大的那个类型再运算
8.A 这个表述=。=其实参数类型和个数都相同的情况下,还可以根据参数的排列来区别方法
9.A String不可变字符串!
10.A 同上
11.B 这个题目怎么说呢,如果父类有private成员,则子类虽然继承到了这个成员,但是无法访问它,不知道这算不算子类成员,这里如果算,那么是对的,如果不算,就是错误
12.A java.lang是包名!应该是java.lang.Object
13.A 刚好说反了
14.B
15.B 接口中只能有抽象方法,且不用显示的修饰为abstract
16.B
17.B
18.A 抽象类可以有普通方法
19.A
20.A 这个相同属性是什么意思?指属性的类型相同,那是对的,如果指属性的值相同,这个就错了
个人答案,仅供参考,错误之处,请多包涵
7. 哪位大侠能用java程序实现下面的题目
这道题可以这么来分解。
把整数'1'分解为以下形式。
1 = 1/a + 1/b + 1/c + 1/d,并且 0 < a, b, c, d < 20.,a,b,c,d都是整数。
a, b, c, d 代表每喝完一瓶酒后,剩余的海盗数量。
假设最开始海盗数量一共为x人,那么a = x, 那么海盗船长第一次喝了 1/x瓶酒
喝完第一瓶酒之后,还剩余b人,即第一次喝倒了x-b人,第二次海盗船长喝了1/b瓶酒。。。。
依次类推。海盗船一共喝了 1/x + 1/b + 1/c + 1/d = 1瓶酒。
写程序就这么写吧。
==============================
public class haidao {
public static void main(String[] args) {
int minPerson = 1;
double allPersons = 4;
while (allPersons <= 20) {
int firstPersons = minPerson;
while (firstPersons <= allPersons) {
int secondPersons = minPerson;
while (secondPersons <= allPersons - firstPersons) {
int thirdPersons = minPerson;
while (thirdPersons <= allPersons - firstPersons
- secondPersons) {
double captionDrinkedTotal = 1.0/allPersons
+ 1.0/(allPersons - firstPersons)
+ 1.0/(allPersons - firstPersons - secondPersons)
+ 1.0/(allPersons - firstPersons - secondPersons - thirdPersons)
- 1;
if (Math.abs(captionDrinkedTotal) < 0.00000001) {
System.out.print("海盗总数:" + allPersons);
System.out.print(" 第一次喝倒人数:" + firstPersons);
System.out.print(" 第二次喝倒人数:" + secondPersons);
System.out.println(" 第三次喝倒人数:" + thirdPersons);
}
thirdPersons++;
}
secondPersons++;
}
firstPersons++;
}
allPersons++;
}
}
}
==========
运行结果:
海盗总数:12.0 第一次喝倒人数:6 第二次喝倒人数:2 第三次喝倒人数:2
海盗总数:15.0 第一次喝倒人数:5 第二次喝倒人数:7 第三次喝倒人数:1
海盗总数:18.0 第一次喝倒人数:9 第二次喝倒人数:6 第三次喝倒人数:1
海盗总数:20.0 第一次喝倒人数:15 第二次喝倒人数:1 第三次喝倒人数:2
==========
PS:只要把minPerson = 1,改为 minPerson = 0,就可以允许某次喝酒没有海盗倒下。
8. 关于Java基础的题,小弟新手,求助并感谢各位达人!
1.根据Java对标识符的命名规则,以下属于合法命名的是()
a) $xiaozhu
b) A#haha
c) static
d) '123_JK
答案A,其他的都不合法,原因在于B的#不合法,C是java中的保留关键字,D的单引号不合法。
2.在Java程序中,对于数据类型为boolean的变量x,不可以采用的赋值方式是()
a) x=(3 = 3);
b) x=true;
c) x=false;
d) x=(3==3);
答案是A,在JAVA中,表示逻辑的相等是用==来表示的,=表示赋值。
3.若二维数组a有n列,那么在a[i][j]前的元素个数为()
a) i*n+j+1
b) i*n+j-1
c) i*n+j
d) j*n+i
答案C,a[i][j]表示a[i]是一个数组,这个数组中的[j]元素
不好意思,刚才说错了。应该是C,答案已经改过来了。
eg:一个二维数组 int[][] a = new int[4][3]; LZ可以自己算出来的
1---- a[0][0] = 0
2---- a[0][1] = 1
3---- a[0][2] = 2
4---- a[1][0] = 1
5---- a[1][1] = 2
6---- a[1][2] = 3
7---- a[2][0] = 2
8---- a[2][1] = 3
9---- a[2][2] = 4
10---- a[3][0] = 3
11---- a[3][1] = 4
12---- a[3][2] = 5