第一关:创建一个类和一个对象,调用这个对象的属性和方法。
测试输入:无
预期输出:使用中文冒号
名字:五花肉,毛色:棕色,品种:阿拉斯加
啃骨头
叼着骨头跑
package step1;
public class Test {
public static void main(String[] args) {
/********** Begin **********/
//创建Dog对象
//设置Dog对象的属性
wuhuarou dog = new wuhuarou();
dog.name = "五花肉";
dog.color = "棕色";
dog.variety = "阿拉斯加";
//输出小狗的属性
System.out.println("名字:" +dog.name+ ",毛色:" + dog.color + ",品种:" + dog.variety );
//调用方法
dog.eat();
dog.run();
/********** End **********/
}
}
//在这里定义Dog类
/********** Begin **********/
class wuhuarou{
String name;
String color;
String variety;
void eat(){
System.out.println("啃骨头");
}
void run(){
System.out.println("叼着骨头跑");
}
}
/********** End **********/
第二关:创建对象给对象定义无参构造方法和有参构造方法。
测试输入:张富贵,未知
预期输出:
一个人被创建了
姓名:张富贵,性别:未知,被创建了
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 a = new Person();
Person b = new Person(name,sex);
/********** End **********/
}
}
//创建Person对象,并创建两种构造方法
/********** Begin **********/
class Person{
public Person(){
System.out.println("一个人被创建了");
}
public Person(String name,String sex){
System.out.println("姓名:"+name+",性别:"+sex+",被创建了");
}
}
/********** End **********/
第三关:选择题
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;
}
}
将下列哪些方法插入到第7行是合法的(c、d)
A、public float method1(){
System.out.println(“方法2”);
return 1.1;
}
B、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”);
}
第四关:this关键字
测试输入:
baby,45,女
预期输出:
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关:类与对象练习
测试输入:
牛肉,3,true
预期输出:
面码:牛肉,粉的份量:3两,是否带汤:true
面码:牛肉,粉的份量:3两,是否带汤:false
面码:酸辣,粉的份量:2两,是否带汤:true
测试输入:
三鲜,1,true
预期输出:
面码:三鲜,粉的份量:1两,是否带汤:true
面码:三鲜,粉的份量:1两,是否带汤:false
面码:酸辣,粉的份量:2两,是否带汤:true
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,false);
//使用无参构造方法创建WuMingFen对象 取名 f3
WuMingFen f3 = new WuMingFen();
//分别调用三个类的 check方法
f1.check();
f2.check();
f3.check();
/********** End **********/
}
}
/********** Begin **********/
//在这里添加包名 step4
package step4;
//创建类 添加属性和方法
class WuMingFen{
String theMa ="酸辣";
int quantity = 2;
boolean likeSoup = true;
public WuMingFen() {};
public WuMingFen(String a,int b,boolean c){
theMa = a;
quantity = b;
likeSoup = c;
}
public WuMingFen(String a,int b){
theMa = a;
quantity = b;
}
public void check() {
System.out.println("面码:"+theMa+",粉的份量:"+quantity+"两,是否带汤:"+likeSoup);
}
}
/********** End **********/
第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关:选择题
有如下代码:
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
}
}
上述代码会出错的位置有:(e,g)
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