Java面向对象 - 类与对象

第一关:
编程要求

根据提示,在右侧编辑器Begin-End处补充代码:

  • 声明一个Dog类,给Dog类添加三个String类型的属性,分别是namecolorvariety ,定义两个方法,分别是,eatrun
  • main方法中创建一个名为wuhuarouDog对象,并设置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类型参数namesexmain方法中调用无参构造和有参构造方法;

  • 调用无参构造方法输出:一个人被创建了

  • 调用有参构造方法应根据输入的数据输出对应的结果,如输入:张三,则输出:姓名:张三,性别:男,被创建了

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定义如下:

     
      
    1. public class Test{
    2. public float method1(){
    3. System.out.println("方法1");
    4. return 1.5;
    5. }
    6. }

    将下列哪些方法插入到第7行是合法的(cd)

    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"); }

编程要求

右侧编辑器中已经编写好了代码,但是输出结果不能让我们满意,请根据所学知识修改代码,使其能输出如下结果: 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、

    有如下代码:

     
      
    1. public class TestMain{
    2. public static void main(String args[]){
    3. MyClass mc1 = new MyClass();
    4. MyClass mc2 = new MyClass();
    5. mc1.a = 100;
    6. mc1.b = 200;
    7. mc2.a = 300;
    8. mc2.b = 400;
    9. System.out.println(mc1.a);
    10. System.out.println(mc1.b);
    11. System.out.println(mc2.a);
    12. System.out.println(mc2.b);
    13. }
    14. }
    15. class MyClass{
    16. static int a;
    17. int b;
    18. }

    请问输出结果是(d)

    A、

    100 100 100 100

    B、

    100 200 300 400

    C、

    400 400 400 400

    D、

    300 200 300 400

  • 2、

     
      
    1. class MyClass {
    2. int a;
    3. static int b;
    4. void fa(){
    5. }
    6. static void fb(){
    7. }
    8. public void m1(){
    9. System.out.println(a); //位置1
    10. System.out.println(b); //位置2
    11. fa(); //位置3
    12. fb(); //位置4
    13. }
    14. public static void m2(){
    15. System.out.println(a); //位置5
    16. System.out.println(b); //位置6
    17. fa(); //位置7
    18. fb(); //位置8
    19. }
    20. }

    上述代码会出错的位置有:(eg)

    A、

    位置1

    B、

    位置2

    C、

    位置3

    D、

    位置4

    E、

    位置5

    F、

    位置6

    G、

    位置7

  • 3、

     
      
    1. class MyClass {
    2. static int i = 10;
    3. static {
    4. i = 20;
    5. System.out.println("In Static");
    6. }
    7. public MyClass() {
    8. System.out.println("MyClass()");
    9. }
    10. public MyClass(int i) {
    11. System.out.println("MyClass(int)");
    12. this.i = i;
    13. }
    14. }
    15. public class TestMain {
    16. public static void main(String args[]) {
    17. MyClass mc1 = new MyClass();
    18. System.out.println(mc1.i);
    19. MyClass mc2 = new MyClass(10);
    20. System.out.println(mc2.i);
    21. }
    22. }

    上述代码的运行结果是:(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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值