本文目录一览:
- 1、请求大神帮我解答这道java编程题(填写代码)
- 2、关于JAVA问题的解答
- 3、这道java题怎么做?
- 4、java这道题请解析下
- 5、初学java 能帮忙答一下这个题的代码么。越详细越好,谢谢大家
请求大神帮我解答这道java编程题(填写代码)
此题的Employee类设计有缺陷,缺少员工薪水的属性。根据题意只能写出下面的程序:
abstract class Employee {
public abstract double earnings();
}
class YearWorker extends Employee {
@Override
public double earnings() {
return 0;
}
}
class MonthWorker extends Employee {
@Override
public double earnings() {
return 0;
}
}
class WeekWorker extends Employee {
@Override
public double earnings() {
return 0;
}
}
class Company {
Employee[] employee;
double salaries = 0;
Company(Employee[] employee) {
this.employee = employee;
}
public double salariesPay() {
salaries = 0;
//计算salaries
for(int i=0; iemployee.length; i++) {
salaries += employee[i].earnings();
}
return salaries;
}
}
public class HardWork {
public static void main(String[] args) {
Employee[] employee = new Employee[20];
for(int i=0; iemployee.length; i++) {
if(i % 3 == 0) {
employee[i] = new YearWorker();
}
else if(i % 3 == 1) {
employee[i] = new MonthWorker();
}
else if(i % 3 == 2) {
employee[i] = new WeekWorker();
}
}
Company company = new Company(employee);
System.out.println("公司年工资总额:" + company.salariesPay());
}
}
运行结果:
公司年工资总额:0.0
关于JAVA问题的解答
第1题 :下面哪个对类的声明是错误的? (A),Java中没有多继承,C++有多继承,Java只能多实现多个接口;
第2题 某一个子类要继承一个父类,要使用关键字(extends )。
第3个题:下列说法正确的有( C)Java中new 的时候执行构造方法,至于执行哪一个看你new的哪一个构造方法
第4题:有以下方法的定义,请选择该方法的返回类型( D)。java会自动向上转型, (short) x/y*2;这个short强制转型只是转了x,并不是转了结果
第5题:在方法内部使用,代表对当前对象自身引用的关键字是( this)。Java中this是对自己的引用,super向上调用
第6题:以下关于继承的叙述正确的是(A )。在Java中类只允许单一继承
第7题:一个非抽象子类,如果要实现某个接口,则( A)。必须实现该接口中的所有抽象方法
第8题:哪个关键字可以抛出异常? ( throw)。catch中用throw;方法上用throws
第9题:关于以下代码段的说法正确的是( D)。这个虽然可以执行成功但是如果你要去判断相等的话得到时false,string和StringBuffer有着本质的不同,一个不可变一个可变
第10题:下面关键字中,哪一个不是用于异常处理语句( break )。 break用于跳出循环
这道java题怎么做?
答案如下,在电脑测试了下是可以的
import Java.util.Scanner;
public class sy2_1{
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
int []arr=new int[3];
for (int i=0;i3;i++ ) {
arr[i]=in.nextInt();
}
int sum=0;
for (int i=0;i3 ;i++ ) {
sum=sum+arr[i];
}
System.out.print("平均数为"+sum/3);
}
}
java这道题请解析下
第一条输出语句:很明显,也没有争议,先输出2
第二条输出语句:要先明白a++它在输出之前是不会先加1的,所以还是输出2
再输出第二个2后,这时java内部就将a加上1了,所以现在a值为3
第三条输出语句:要先明白++a会在输出之前先立即加上1,所以输出3+1=4
所以最后结果为224,先D
初学java 能帮忙答一下这个题的代码么。越详细越好,谢谢大家
package com;
public class NumberClass {
private int[] array = null;
private int index = 0;
// 构造方法
public NumberClass(int num){
//验证参数
if(num = 0 ){
num = 1;
}
this.array = new int[num];
}
public NumberClass(){
this.array = new int[1];
}
// 添加数字方法
public int add(int x){
//判断当前添加的位置是否合法
if(index = array.length-1){
dilatation();
}
//赋值
array[index] = x;
//下标自增
index ++;
return array[index-1];
}
// 获取指定下标位置的数值
public Integer get(int i){
//判断下标是否超出已赋值区域
if(i 0 || i index-1){
return null;
}
return array[i];
}
// 取得数组已赋值下标的个数
public int getCount(){
return index;
}
// 设置一个可用下标的值
public Integer set(int i,int val){
//判断下标是否超出已赋值区域
if(i 0 || i index-1){
return null;
}
array[i] = val;
return array[i];
}
// 长度扩容方法
private void dilatation(){
//取得当前数组的长度
int length = array.length;
//生成扩容后的新数组
int[] array_next = new int[length*2];
//循环原数组对新数组赋值
for(int i=0;ilength;i++){
array_next[i] = array[i];
}
//新数组替换旧数组
this.array = array_next;
}
}