第1关:什么是类,如何创建类

1、编程要求:

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

声明一个Dog类,给Dog类添加三个String类型的属性,分别是name,color,variety,定义两个方法,分别是,eat,run。

在main方法中创建一个名为wuhuarou的Dog对象,并设置name为五花肉,color为棕色,variety为阿拉斯加。

使得调用wuhuarou对象的eat方法能输出啃骨头,调用run方法能输出叼着骨头跑。

2、测试效果:

测试输入:无

预期输出:使用中文冒号

名字:五花肉,毛色:棕色,品种:阿拉斯加

啃骨头

叼着骨头跑

3、程序设计思路:

(1)定义属性和方法。

(2)在主类的main方法中创建对应对象,设置Dog类的属性。

(3)采用对象调用两个类中的方法。

4、程序实现:

复制代码

package step1;public class Test {public static void main(String[] args) {/********** Begin **********/Dog wuhuarou = new Dog(); //创建Dog对象//设置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 **********/

复制代码

第2关:构造方法

1、编程要求:

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

创建一个Person类,给Person类定义一个无参构造方法和一个有参构造方法,有参构造方法定义两个String类型参数name和sex,在main方法中调用无参构造和有参构造方法;

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

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

2、测试效果:

测试输入:张富贵,未知

预期输出:

一个人被创建了

姓名:张富贵,性别:未知,被创建了

3、程序设计思路:

(1)注意无参构造法的创建格式。

(2)有参和无参构造方法本质上涉及到的是方法的重载。

4、程序实现:

复制代码

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 p1 = new Person();Person p2 = 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 **********/

复制代码

5、题目总结:

(1)对象在被创建的时候,也就是被new的时候,会自动调用构造方法。

(2)如果定义的类没有声明构造方法,对象在创建时默认使用空的构造方法。

(3)构造方法没有返回值,没有参数,名称必须与类名相同。

第3关:选择题

1、选择题答案:C  CD

2、题目总结:

(1)第二题尤为注意方法的重载,在同一类中,如果方法名称相同,则涉及到方法的重载,这两个方法的参数列表必须有所区别,可以是变量类型,可以是变量数量。

第4关:This关键字

1、编程要求:

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

name:baby

age:45

sex:女

2、测试效果:

测试输入:

baby,45,女

预期输出:

name:baby

age:45

sex:女

3、程序设计思路:

(1)运用this关键字使构造方法传入的参数修改类中的成员变量。

4、程序实现:

复制代码

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(){System.out.println("name:" + name);System.out.println("age:" + age);System.out.println("sex:" + sex);}/********** End **********/
}

复制代码

5、题目总结:

(1)this()调用的是Person自己的无参构造方法。

(2)this.name访问的是Person对象自身的name,而方法参数中的name则表示方法传入的值。

第5关:类与对象练习

1、编程要求:

我已经帮你创建好了两个文件一个是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(),用于查看粉是否符合要求。即:将对象的三个属性打印在控制台上。

2、测试效果:

我会对你编写的代码进行测试:

测试输入:

牛肉,3,true

预期输出:

面码:牛肉,粉的份量:3两,是否带汤:true

面码:牛肉,粉的份量:3两,是否带汤:false

面码:酸辣,粉的份量:2两,是否带汤:true

测试输入:

三鲜,1,true

预期输出:

面码:三鲜,粉的份量:1两,是否带汤:true

面码:三鲜,粉的份量:1两,是否带汤:false

面码:酸辣,粉的份量:2两,是否带汤:true

3、程序设计思路:

(1)首先观察输出中的不同点,一和二只有是否带汤不同,三前两项和一二都不相同,而根据要求三的构造方法没有参数,所以想到在设置属性时先将面码和粉的份量定下来。

(2)一和二和明显是构造方法不同重载形式造成的,由于一利用参数可以修改是否带汤属性,所以二的是否带汤属性一定来自WuMingFen的成员变量。

4、程序实现:

(1)WuMingFen类:复制代码
/********** Begin **********/
//在这里添加包名  step4
package step4;
//创建类 添加属性和方法
public class WuMingFen{String theMa = "酸辣";int quantity = 2;boolean likeSoup = false;public WuMingFen() {likeSoup = true;}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 );}
}
/********** End **********/

复制代码
(2)Test类:

复制代码
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对象  取名 f1WuMingFen f1 = new WuMingFen(theMa, quantity, likeSoup);//使用两个参数的构造方法创建WuMingFen对象  取名 f2WuMingFen f2 = new WuMingFen(theMa, quantity);//使用无参构造方法创建WuMingFen对象  取名 f3WuMingFen f3 = new WuMingFen();//分别调用三个类的 check方法f1.check();f2.check();f3.check();/********** End **********/    }
}

复制代码

第6关:static关键字

1、编程要求:

现在编辑器中代码有异常,请利用本关所学知识修改右侧代码使其能输出如下结果:

hello educoder

我叫楚留香

我喜欢在educoder上学习java

2、程序设计思路:

(1)修改代码即可,知道static修饰的规则。

3、程序实现:

复制代码

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 **********/
}

复制代码

4、题目总结:

(1)如果一个类的成员变量被static修饰了,那么所有该类的对象都共享这个变量,对于方法也一样。(类名.变量名/方法名)

(2)静态方法不能使用非静态变量。

(3)静态代码块是不需要依赖main方法就可以独立运行的,其中只能直接调用静态的属性和方法,在类被加载的时候运行且只运行一次(必定运行一次)。

(4)在Java中是不能用static关键字修饰局部变量的。(人为规定)

其实这些变量都之所以叫局部变量,其作用域也只限于声明它的方法体内。在方法被调用时,这些局部变量获得内存空间,到方法执行结束时,他们所占据的内存空间就被释放。

而static,public是用来声明全局变量或是被其他对象引用的变量。

第7关:选择题

1、选择题答案:D  EG  B

Educoder - Java面向对象 - 类与对象各关卡题目总结相关推荐

  1. java面向对象-类和对象

    Java面向对象笔记 文章目录 Java面向对象笔记 java面向对象 类和对象 什么是类 定义 创建和使用 公式 构造方法 什么是构造方 怎么定义和使用构造方法 实列 This关键字 什么是成员变量 ...

  2. 头歌(EduCoder)实训项目-Java面向对象-类与对象

    第1关:什么是类,如何创建类 任务描述: 本关任务:创建一个类和一个对象,调用这个对象的属性和方法. 编程要求: 根据提示,在右侧编辑器Begin-End处补充代码: 声明一个Dog类,给Dog类添加 ...

  3. 头歌(educoder)第 5 章 Java 面向对象之类和对象 Java面向对象 - 类与对象

    目录 第1关:什么是类,如何创建类 第2关:构造方法 第3关:选择题(一)​编辑 第4关:This关键字 第5关:类与对象练习 第6关:static关键字 第7关:选择题(二) 第1关:什么是类,如何 ...

  4. 7.0_[Java 面向对象]-类和对象

    ################################################## 目录 面向对象扫盲 万物皆对象 分类思想 对象的属性与方法/实例的特征和行为 如何在 Java 中 ...

  5. Java面向对象 类、对象、构造方法、封装

    第1章 面向对象基础 1.1 编程思想概述 1.1.1 面向过程思想概述 我们回想一下,这几天我们完成一个需求的步骤:首先是搞清楚我们要做什么,然后在分析怎么做,最后我们再代码体现.一步一步去实现,而 ...

  6. 头歌实践教学平台:Java面向对象 - 类与对象

    第1关:什么是类,如何创建类 本关任务:创建一个类和一个对象,调用这个对象的属性和方法. package step1;public class Test {public static void mai ...

  7. Java面向对象 - 类与对象

    第1关:什么是类,如何创建类 任务描述 本关任务:创建一个类和一个对象,调用这个对象的属性和方法. 相关知识 为了完成本关任务,你需要掌握:1.什么是类和对象: 2.怎么定义类: 3.怎么创建对象并使 ...

  8. 18、Java面向对象——类和对象的关系及应用、对象数组的应用

    目录 课前先导: 一.什么是类? 二.类的创建 三.什么是对象? 四.对象的创建.赋值:方法的调用 五.定义类和对象的三种方法 六.对象数组 七.来了,你们要的对象 课前先导: 在刚开始学习java的 ...

  9. 头歌--Java面向对象 - 类与对象

    目录 第1关:什么是类,如何创建类 任务描述 相关知识 编程要求 测试说明

最新文章

  1. css页面重构面试题
  2. 目标跟踪_POI算法
  3. Android:adb进程问题
  4. Bootstrap:弹出框和提示框效果以及代码展示
  5. Android Camera(5)---Android Camera调用流程
  6. ssm框架下web项目,web.xml配置文件的作用(详解)
  7. android 倒计时handle,android -handler 实现倒计时
  8. Mac环境下安装Pod
  9. 计算机金融专业课程方案,《计算机在金融业中的应用》教学实施方案
  10. unity 将虚拟相机的视角局部放大,显示在一个平面上
  11. php生成图片不显示,php绘图不显示图片怎么办
  12. MCSA / Windows Server 2016 使用Hyper-V组件搭建实验环境
  13. IGBT 直通短路过程问题分析
  14. Docker 清理数据卷 volumes
  15. 快应用联盟展示入口合集(11月更新)
  16. Linux+conda+R+Rstudio下载安装环境全方面配置
  17. 腾讯云点播 - 视频防盗加密 - 使用总结
  18. 下列选项中、不是python语言保留字的是_以下选项中,不是Python语言保留字的是:()...
  19. android 设置空动画,Android WebView 空白等待时加载动画
  20. Openwrt PPPoE服务器容器化配置指导

热门文章

  1. 使用websocket做视频直播
  2. access返回行号_Access中取行号
  3. C++ 单链表(带头结点)
  4. 瀑布模型、快速原型模型、增量模型、螺 旋模型的优缺点,说明每种模型的使用范围
  5. java获取字节数组_从java中的ByteBuffer获取字节数组
  6. ubuntu系统查看gcc版本及版本切换
  7. Flash图片新闻的实现方法及源码下载
  8. OFDM中循环前缀CP的作用
  9. Gmail之父:有了ChatGPT,搜索引擎活不过两年了
  10. 《锦衣卫》——还好,太监不是最大的boss