第一关:
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码:
- 声明一个
Dog
类,给Dog
类添加三个String
类型的属性,分别是name
,color
,variety
,定义两个方法,分别是,eat
,run
。 - 在
main
方法中创建一个名为wuhuarou
的Dog
对象,并设置name
为五花肉
,color
为棕色
,variety
为阿拉斯加
。 - 使得调用
wuhuarou
对象的eat
方法能输出啃骨头
,调用run
方法能输出叼着骨头跑
。
package step1;
public class Test {
public static void main(String[] args) {
/********** Begin **********/
//创建Dog对象
//设置Dog对象的属性
//在main方法中创建一个名为wuhuarou的Dog对象,
//并设置name为五花肉,color为棕色,variety为阿拉斯加。
Dog wuhuarou = new Dog();
wuhuarou.name = "五花肉";
wuhuarou.color = "棕色";
wuhuarou.variety = "阿拉斯加";
//输出小狗的属性
System.out.println("名字:" +wuhuarou.name+ ",毛色:" +wuhuarou.color+ ",品种:" +wuhuarou.variety);
//调用方法
wuhuarou.eat();
wuhuarou.run();
/********** End **********/
}
}
//在这里定义Dog类
/********** Begin **********/
class Dog{
String name;
String color;
String variety;
void eat(){
System.out.println("啃骨头");
}
void run(){
System.out.println("叼着骨头跑");
}}
/********** End **********/
第二关:
编程要求
根据提示,在右侧编辑器Begin-End
处补充代码:
-
创建一个
Person
类,给Person
类定义一个无参构造方法和一个有参构造方法,有参构造方法定义两个String
类型参数name
和sex
在main
方法中调用无参构造和有参构造方法; -
调用无参构造方法输出:
一个人被创建了
; -
调用有参构造方法应根据输入的数据输出对应的结果,如输入:
张三
,男
,则输出:姓名:张三,性别:男,被创建了
。
package step2;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name = sc.next();
String sex = sc.next();
/********** Begin **********/
//分别使用两种构造器来创建Person对象
Person person1 = new Person();
Person person2 = new Person(name,sex);
/********** End **********/
}
}
//创建Person对象,并创建两种构造方法
/********** Begin **********/
class Person{
String name;
String sex;
public Person(){
System.out.println("一个人被创建了");
}
public Person(String name, String sex){
this.name = name;
this.sex = sex;
System.out.println("姓名:"+name+','+"性别:"+sex+','+"被创建了");
}
}
/********** End **********/
第三关:
-
1、
下列关于构造方法的说法不正确的是(d)
A、Java语言规定构造方法名必须与类名相同
B、Java语言规定构造方法没有返回值,且不用void关键字声明
C、构造方法不可以重载
D、构造方法只能用new关键字来创建
-
2、
类Test定义如下:
public class Test{
public float method1(){
System.out.println("方法1");
return 1.5;
}
}
将下列哪些方法插入到
A、第7行
是合法的(cd)public float method1(){
B、
System.out.println("方法2"); return 1.1; }public Test1(){ System.out.println("hello"); }
C、public float method1( int a){ System.out.println("方法2"); return a+0.5; }
D、public Test(){ System.out.println("hello"); }
编程要求
右侧编辑器中已经编写好了代码,但是输出结果不能让我们满意,请根据所学知识修改代码,使其能输出如下结果: name:baby
age:45
sex:女
package step3;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String name = sc.next();
int age = sc.nextInt();
String sex = sc.next();
Person p = new Person(name,age,sex);
p.display();
}
}
class Person{
String name = "张三";
int age = 18;
String sex = "男";
/********** Begin **********/
public Person(String name,int age,String sex){
this(age);
this.name = name;
this.sex = sex;
}
public Person(int age){
this.age = age;
}
public void display(){
String name = "baby";
int age = 45;
String sex = "女";
System.out.println("name:" + this.name);
System.out.println("age:" + this.age);
System.out.println("sex:" + this.sex);
}
/********** End **********/
}
编程要求
我已经帮你创建好了两个文件一个是WuMingFen.java
,另一个是Test.java
,你需要切换文件在两个文件中编写代码来完成本关任务。
为“无名的粉”写一个类:class WuMingFen
要求:
-
有三个属性:面码:
String theMa
粉的分量(两):int quantity
是否带汤:boolean likeSoup
; -
写一个构造方法,以便于简化初始化过程,如:
WuMingFen f1 = new WuMingFen("牛肉",3,true);
; -
重载构造方法,使得初始化过程可以多样化:
WuMingFen f2 = new WuMingFen("牛肉",2);
; -
如何使得下列语句构造出来的粉对象是酸辣面码、2两、带汤的?
WuMingFen f3 = new WuMingFen();
; -
写一个普通方法:
check()
,用于查看粉是否符合要求。即:将对象的三个属性打印在控制台上。
package step4;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String theMa = sc.next();
int quantity = sc.nextInt();
boolean likeSoup = sc.nextBoolean();
/********** Begin **********/
//使用三个参数的构造方法创建WuMingFen对象 取名 f1
WuMingFen f1 = new WuMingFen(theMa, quantity, likeSoup);
//使用两个参数的构造方法创建WuMingFen对象 取名 f2
WuMingFen f2 = new WuMingFen(theMa, quantity);
//使用无参构造方法创建WuMingFen对象 取名 f3
WuMingFen f3 = new WuMingFen();
f3.theMa = "酸辣";
f3.quantity = 2;
f3.likeSoup = true;
//分别调用三个类的 check方法
f1.check();
f2.check();
f3.check();
/********** End **********/
}
}
编程要求
现在编辑器中代码有异常,请利用本关所学知识修改右侧代码使其能输出如下结果:
hello educoder
我叫楚留香
我喜欢在educoder上学习java
package step5;
public class Test {
/********** Begin **********/
static String name = "楚留香";
static
{
System.out.println("hello educoder");
}
public static void main(String[] args) {
System.out.println("我叫" + name);
study();
}
public static void study(){
System.out.println("我喜欢在educoder上学习java");
}
/********** End **********/
}
-
1、
有如下代码:
public class TestMain{
public static void main(String args[]){
MyClass mc1 = new MyClass();
MyClass mc2 = new MyClass();
mc1.a = 100;
mc1.b = 200;
mc2.a = 300;
mc2.b = 400;
System.out.println(mc1.a);
System.out.println(mc1.b);
System.out.println(mc2.a);
System.out.println(mc2.b);
}
}
class MyClass{
static int a;
int b;
}
请问输出结果是(d)
A、100 100 100 100
B、100 200 300 400
C、400 400 400 400
D、300 200 300 400
-
2、
class MyClass {
int a;
static int b;
void fa(){
}
static void fb(){
}
public void m1(){
System.out.println(a); //位置1
System.out.println(b); //位置2
fa(); //位置3
fb(); //位置4
}
public static void m2(){
System.out.println(a); //位置5
System.out.println(b); //位置6
fa(); //位置7
fb(); //位置8
}
}
上述代码会出错的位置有:(eg)
A、位置1
B、位置2
C、位置3
D、位置4
E、位置5
F、位置6
G、位置7
-
3、
class MyClass {
static int i = 10;
static {
i = 20;
System.out.println("In Static");
}
public MyClass() {
System.out.println("MyClass()");
}
public MyClass(int i) {
System.out.println("MyClass(int)");
this.i = i;
}
}
public class TestMain {
public static void main(String args[]) {
MyClass mc1 = new MyClass();
System.out.println(mc1.i);
MyClass mc2 = new MyClass(10);
System.out.println(mc2.i);
}
}
上述代码的运行结果是:(b)
A、MyClass() 20 MyClass(int) 10
B、In Static MyClass() 20 MyClass(int) 10
C、In Static MyClass(int) 20 MyClass() 10
D、In Static MyClass() 10 MyClass(int) 20