头歌(EduCoder)实训项目-Java面向对象-类与对象
第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;
}
}
将下列哪些方法插入到
第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”); }
第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对象 取名 f1WuMingFen f1 = new WuMingFen(theMa, quantity, likeSoup);//使用两个参数的构造方法创建WuMingFen对象 取名 f2WuMingFen f2 = new WuMingFen(theMa, quantity);//使用无参构造方法创建WuMingFen对象 取名 f3WuMingFen 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); //位置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、 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
头歌(EduCoder)实训项目-Java面向对象-类与对象相关推荐
- 头歌实践教学平台:Java面向对象 - 类与对象
第1关:什么是类,如何创建类 本关任务:创建一个类和一个对象,调用这个对象的属性和方法. package step1;public class Test {public static void mai ...
- 【Java】第7章 Java 类和对象 头歌Educoder实训作业(七)
第1关:练习-Java类和对象之类的声明之复数运算 任务描述 本关任务:求两个复数相加后的结果. 两个复数之间相加的运算法则:实部与实部相加,虚部与虚部相加. 关于复数的定义,可以自行查阅,本实训不做 ...
- 【Java】第11章 JAVA 异常处理 头歌Educoder实训作业(十一)
第1关:学习-Java异常处理之try-catch之异常捕获 任务描述 本关任务:求给定两个数的商,并捕获除数为 0 的异常. 相关知识 为了完成本关任务,你需要掌握: 1.什么是异常: 2.如何捕获 ...
- educoder头歌Web实训 web课——综合应用案例:动态焦点图页面的制作
educoder头歌Web实训 太原理工web课--综合应用案例:拼图页面的制作[全网更新最快]_玛卡巴卡的博客-CSDN博客 第1关:动态焦点图页面的样式设计 任务描述 本关任务: 完成动态焦点图 ...
- educoder头歌Web实训 web课——综合应用案例:限时秒杀效果的制作
educoder头歌Web实训 太原理工web课--综合应用案例:动态焦点图页面的制作[全网更新最快]_玛卡巴卡的博客-CSDN博客 第1关:限时秒杀效果图片渲染 [TOC] 图1如下 链接为htt ...
- java面向对象-类和对象
Java面向对象笔记 文章目录 Java面向对象笔记 java面向对象 类和对象 什么是类 定义 创建和使用 公式 构造方法 什么是构造方 怎么定义和使用构造方法 实列 This关键字 什么是成员变量 ...
- 头歌(educoder)第 5 章 Java 面向对象之类和对象 Java面向对象 - 类与对象
目录 第1关:什么是类,如何创建类 第2关:构造方法 第3关:选择题(一)编辑 第4关:This关键字 第5关:类与对象练习 第6关:static关键字 第7关:选择题(二) 第1关:什么是类,如何 ...
- 头歌HTML实训笔录
头歌实训笔录 HTML前端基础 第2关 创建 - 标签 HTML前端基础 因学校Java 前端等写代码的作业都在头哥平台上操作,就记录一下每一关的代码吧.. ##第1关 创建第一个 HTML 标签 / ...
- 进程管理系统的设计与实现 SDUT 操作系统实训 项目 Java
进程管理系统的设计与实现 要求: (1)设计一个完整的进程调度系统,至少包含三种常用的算法(FCFS.SPF.静态优先权.响应比.时间片轮转),系统中至少包含5个进程,并且能够体现进程的动态申请; ( ...
最新文章
- 常用 Linux 命令
- Spring中自动装配的方式有哪些?
- android ndk程序UnsatisfiedLinkError解决方案
- 中关村-DIY操作系统之不分区安装Ubuntu系统
- Deep Learning运行所需的硬件配置(转)
- 【ArcGIS风暴】ArcGIS创建栅格数据集色彩映射表案例--以GlobeLand30土地覆盖数据为例
- oracle之数据处理之约束2
- Spring —— IoC 容器详解
- Django在根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete'
- jsdelivr 缓存刷新
- 2009-03-24 20:01 Matlab 7.0 添加BNT工具箱(转)
- Sublime 编译运行JavaScript
- ROS 搞懂多话题回调机制以及消息队列
- ArcGIS API for Silverlight/WPF/Windows Phone/Android 插件下载地址
- 计算机语言--python
- 俄罗斯互联网提供商巨头Rostelecom遭遇DDoS攻击企图
- webbuilder mysql tomcat 安装心得
- haneWIN Software NFS工具的使用
- PROTEL技术大全
- MobileNet_V3—SSD网络模型图文详解