1
请补充下列代码,使测试类编译通过并运行。 已知代码材料
public class Demo1 {
public static void main ( String[ ] args) {
Person p = getInstance ( ) ;
p. eat ( ) ;
}
private static ? getInstance ( ) {
}
}
class Person {
public void eat ( ) {
System. out. println ( "吃饭" ) ;
}
}
运行结果:
吃饭
参考答案
package cn. Work1202. hooong_01;
public class Demo {
public static void main ( String[ ] args) {
Person p = getInstance ( ) ;
p. eat ( ) ;
}
private static Person getInstance ( ) {
return new Person ( ) ;
}
}
class Person {
public void eat ( ) {
System. out. println ( "吃饭" ) ;
}
}
2
请补充下列代码,在main方法中调用method方法,并编译通过,最终在控制台输出(狗吃肉,狗看家)
public class Demo2 {
public static void main ( String[ ] args) {
}
public static void method ( Animal a) {
a. eat ( ) ;
a. watchHome ( ) ;
}
}
abstract class Animal {
public abstract void eat ( ) ;
}
class Dog extends Animal {
@Override
public void eat ( ) {
System. out. println ( "狗吃肉" ) ;
}
public void watchHome ( ) {
System. out. println ( "狗看家" ) ;
}
}
运行结果:
狗吃肉
狗看家
参考答案
public static void method ( Animal a) {
a. eat ( ) ;
if ( a instanceof Dog ) {
Dog dog= ( Dog) a;
dog. watchHome ( ) ;
}
}
}
abstract class Animal {
public abstract void eat ( ) ;
}
class Dog extends Animal {
@Override
public void eat ( ) {
System. out. println ( "狗吃肉" ) ;
}
public void watchHome ( ) {
System. out. println ( "狗看家" ) ;
}
}
3
请完善下列代码,在main方法中调用Inner的method方法,并依次在控制台输出30 , 20 , 10
public class Demo3 {
public static void main ( String[ ] args) {
}
}
class Outer {
int num = 10 ;
class Inner {
int num = 20 ;
public void method ( ) {
int num = 30 ;
System. out. println ( ) ;
System. out. println ( ) ;
System. out. println ( ) ;
}
}
}
运行结果
30
20
10
参考答案
package cn. Work1202. hooong_03;
public class Demo {
public static void main ( String[ ] args) {
Outer. Inner i = new Outer ( ) . new Inner ( ) ;
i. method ( ) ;
}
}
class Outer {
int num = 10 ;
class Inner {
int num = 20 ;
public void method ( ) {
int num = 30 ;
System. out. println ( num) ;
System. out. println ( this . num) ;
System. out. println ( Outer. this . num) ;
}
}
}
4
请结合已有代码,补齐Outer中的代码,要求在控制台输出”HelloWorld”(必须使用匿名内部类)
public class Demo4 {
public static void main ( String[ ] args) {
Outer. method ( ) . show ( ) ;
}
}
interface Inter {
void show ( ) ;
}
class Outer {
}
运行结果:
HelloWorld
参考答案
package cn. Work1202. hooong_05;
public class Demo {
public static void main ( String[ ] args) {
Outer. method ( ) . show ( ) ;
}
}
interface Inter {
void show ( ) ;
}
class Outer {
public static Inter method ( ) {
Inter inter= new Inter ( ) {
@Override
public void show ( ) {
System. out. println ( "HelloWord" ) ;
}
} ;
return inter;
}
}
5
某程序员编写了如下代码,想要测试该代码的执行时间。请帮忙计算methodA方法执行了多长时间?
public class Demo5 {
public static void main ( String[ ] args) {
methodA ( ) ;
}
public static void methodA ( ) {
int sum = 0 ;
for ( int i = 1 ; i <= 1000 ; i++ ) {
if ( i % 2 == 0 ) {
sum += i;
}
}
System. out. println ( "1-1000之间的偶数和为:" + sum) ;
}
}
运行结果:
1 - 1000 之间的偶数和为:250500
methodA的执行时间为:28
参考答案
package cn. Work1202. hooong_06;
public class Demo {
public static void main ( String[ ] args) {
long i1 = System. currentTimeMillis ( ) ;
methodA ( ) ;
long i2 = System. currentTimeMillis ( ) ;
System. out. println ( "methodA的执行时间为:28" + ( i2- i1) + "毫秒" ) ;
}
public static void methodA ( ) {
int sum = 0 ;
for ( int i = 1 ; i <= 1000 ; i++ ) {
if ( i % 2 == 0 ) {
sum += i;
}
}
System. out. println ( "1-1000之间的偶数和为:" + sum) ;
}
}
6
请对Person类进行补充,保证程序运行后结果为: 张三. . .23 李四. . .24 (不可修改main方法内部代码,只能操作Person类)
public class Demo6 {
public static void main ( String[ ] args) {
Person p1 = new Person ( "张三" , 23 ) ;
Person p2 = new Person ( "李四" , 24 ) ;
System. out. println ( p1. toString ( ) ) ;
System. out. println ( p2) ;
}
}
class Person {
private String name;
private int age;
public Person ( ) {
}
public Person ( String name, int age) {
this . name = name;
this . age = age;
}
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;
}
}
运行结果:
张三. . .23
李四. . .24
参考答案
package cn. Work1202. hooong_07;
public class Demo {
public static void main ( String[ ] args) {
Person p1 = new Person ( "张三" , 23 ) ;
Person p2 = new Person ( "李四" , 24 ) ;
System. out. println ( p1. toString ( ) ) ;
System. out. println ( p2) ;
}
}
class Person {
private String name;
private int age;
public Person ( ) {
}
public Person ( String name, int age) {
this . name = name;
this . age = age;
}
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;
}
@Override
public String toString ( ) {
return getName ( ) + "..." + getAge ( ) ;
}
}
7
现有两个Person对象,属性都是(张三 , 23 )请对Person类进行补充,保证程序运行后结果为true (不可修改main方法内部代码,只能操作Person类)
public class Demo7 {
public static void main ( String[ ] args) {
Person p1 = new Person ( "张三" , 23 ) ;
Person p2 = new Person ( "张三" , 23 ) ;
System. out. println ( p1. equals ( p2) ) ;
}
}
class Person {
private String name;
private int age;
public Person ( ) {
}
public Person ( String name, int age) {
this . name = name;
this . age = age;
}
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;
}
}
运行结果:
true
参考答案
package cn. Work1202. hooong_08;
public class Demo {
public static void main ( String[ ] args) {
Person p1 = new Person ( "张三" , 23 ) ;
Person p2 = new Person ( "张三" , 23 ) ;
System. out. println ( p1. equals ( p2) ) ;
}
}
class Person {
private String name;
private int age;
public Person ( ) {
}
public Person ( String name, int age) {
this . name = name;
this . age = age;
}
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;
}
@Override
public boolean equals ( Object o) {
if ( this == o) return true ;
if ( o == null || getClass ( ) != o. getClass ( ) ) return false ;
Person person = ( Person) o;
if ( age != person. age) return false ;
return name != null ? name. equals ( person. name) : person. name == null;
}
}
8
某公司发放年终礼品,但hr在统计的时候发现有很多同姓名同年龄的员工,所以决定对这一部分员工,发放【缘分大礼包】,其余员工发放【普通大礼包】,请用技术手段,完成礼品的分发。 现有4 个员工信息:
张三,23
李四,24
张三,23
张三,28
运行结果:
Employee{ name= 张三, age= 23 } 获得了缘分大礼包
Employee{ name= 李四, age= 24 } 获得了普通大礼包
Employee{ name= 张三, age= 23 } 获得了缘分大礼包
Employee{ name= 张三, age= 28 } 获得了普通大礼包
参考答案
package cn. Work1202. hooong_09;
public class Staff {
private String name;
private int age;
private String grade= "普通大礼包" ;
public Staff ( ) {
}
public Staff ( String name, int age) {
this . name = name;
this . age = age;
}
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 getGrade ( ) {
return grade;
}
public void setGrade ( String grade) {
this . grade = grade;
}
@Override
public boolean equals ( Object o) {
if ( this == o) return true ;
if ( o == null || getClass ( ) != o. getClass ( ) ) return false ;
Staff staff = ( Staff) o;
if ( age != staff. age) return false ;
return name != null ? name. equals ( staff. name) : staff. name == null;
}
@Override
public String toString ( ) {
return "Staff{" +
"name='" + name + '\'' +
", age=" + age +
'}' ;
}
}
package cn. Work1202. hooong_09;
import java. util. ArrayList;
public class Demo {
public static void main ( String[ ] args) {
Staff s1 = new Staff ( "张三" , 23 ) ;
Staff s2 = new Staff ( "李四" , 24 ) ;
Staff s3 = new Staff ( "张三" , 23 ) ;
Staff s4 = new Staff ( "张三" , 28 ) ;
ArrayList< Staff> staff = new ArrayList < > ( ) ;
staff. add ( s1) ;
staff. add ( s2) ;
staff. add ( s3) ;
staff. add ( s4) ;
for ( int i = 0 ; i < staff. size ( ) - 1 ; i++ ) {
for ( int i1 = 1 + i; i1 < staff. size ( ) - 1 ; i1++ ) {
if ( staff. get ( i) . equals ( staff. get ( i1) ) ) {
staff. get ( i) . setGrade ( "缘分大礼包" ) ;
staff. get ( i1) . setGrade ( "缘分大礼包" ) ;
}
}
}
for ( int i = 0 ; i < staff. size ( ) ; i++ ) {
System. out. println ( staff. get ( i) + staff. get ( i) . getGrade ( ) ) ;
}
}
}