Java⾯向对象-类与对象(EduCoder)实训项⽬
第⼀关:创建⼀个类和⼀个对象,调⽤这个对象的属性和⽅法。
声明⼀个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对象的属性
wuhuarou dog =new wuhuarou();
dog.name ="五花⾁";
dog.variety ="阿拉斯加";
//输出⼩狗的属性
System.out.println("名字:"+dog.name+",⽑⾊:"+ lor +",品种:"+ 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 **********/
第⼆关:创建对象给对象定义⽆参构造⽅法和有参构造⽅法。
创建⼀个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 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");
return1.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:⼥
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关:类与对象练习
有三个属性:⾯码:String theMa 粉的分量(两):int quantity是否带汤:boolean likeSoup;
写⼀个构造⽅法,以便于简化初始化过程,如: WuMingFen f1 = new WuMingFen(“⽜⾁”,3,true);;
重载构造⽅法,使得初始化过程可以多样化: WuMingFen f2 = new WuMingFen(“⽜⾁”,2);;
如何使得下列语句构造出来的粉对象是酸辣⾯码、2两、带汤的? WuMingFen f3 = new WuMingFen();;
写⼀个普通⽅法:check(),⽤于查看粉是否符合要求。即:将对象的三个属性打印在控制台上。
⽜⾁,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
nextint()方法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 **********/
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论