第1关:什么是类,如何创建类
任务描述:
本关任务:创建一个类和一个对象,调用这个对象的属性和方法。
编程要求:
根据提示,在右侧编辑器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("叼着骨头跑");
}
}
第2关:构造方法
任务描述:
本关任务:创建对象给对象定义无参构造方法和有参构造方法。
编程要求:
根据提示,在右侧编辑器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 **********/
第3关:选择题
-
1、下列关于构造方法的说法不正确的是( C )
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”); }
第4关:This关键字
任务描述:
本关任务:使用this关键字,设置对象的成员变量。
编程要求
右侧编辑器中已经编写好了代码,但是输出结果不能让我们满意,请根据所学知识修改代码,使其能输出如下结果: 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 **********/
}
第5关:类与对象练习
任务描述:
本关任务:为“无名的粉”写一个类,编写该类的构造方法和成员变量。
编程要求:
我已经帮你创建好了两个文件一个是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(),用于查看粉是否符合要求。即:将对象的三个属性打印在控制台上。
Test.java文件
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 **********/
}
}
WuMingFen.java文件
/********** Begin **********/
//在这里添加包名 step4
package step4;
//创建类 添加属性和方法
public class WuMingFen{
String theMa;
int quantity;
boolean likeSoup;
public WuMingFen(){
}
public WuMingFen(String theMa, int quantity, boolean likeSoup){
this.theMa = theMa;
this.quantity = quantity;
this.likeSoup = likeSoup;
}
public WuMingFen(String theMa, int quantity){
this.theMa = theMa;
this.quantity = quantity;
}
public void check(){
System.out.println("面码:" + theMa + ",粉的份量:" + quantity + "两,是否带汤:" + likeSoup);
}
}
第6关:static关键字
编程要求:
现在编辑器中代码有异常,请利用本关所学知识修改右侧代码使其能输出如下结果:
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 **********/
}
第7关:选择题
-
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、 B、 C、 D、100 100 100 100 100 200 300 400 400 400 400 400 300 200 300 400
-
2、```java class MyClass { int a; static int b; void fa(){
}static void fb(){}public void m1(){System.out.println(a); //位置1System.out.println(b); //位置2fa(); //位置3fb(); //位置4}public static void m2(){System.out.println(a); //位置5System.out.println(b); //位置6fa(); //位置7fb(); //位置8}
}
``` 上述代码会出错的位置有:( EG )
A、 B、 C、 D、 E、 F、 G、位置1 位置2 位置3 位置4 位置5 位置6 位置7
-
3、```java 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、 B、MyClass() 20 MyClass(int) 10 In Static MyClass() 20 MyClass(int) 10
C、 D、In Static MyClass(int) 20 MyClass() 10 In Static MyClass() 10 MyClass(int) 20
这篇博客通过一系列的实战关卡,详细介绍了Java中的类与对象的概念,包括类的创建、构造方法的使用、This关键字的应用、静态关键字static的讲解,以及相关的选择题,帮助读者深入理解Java面向对象编程。
1万+

被折叠的 条评论
为什么被折叠?



