一、实验目的 本实验的目的是让学生巩固下列知识点:
3. 掌握构造方法、成员变量、static等用法。 二、实验题目 1、根据提示,在四、实验结果中1处Begin-End处补充代码: 创建一个Person类,给Person类定义一个无参构造方法和一个有参构造方法,有参构造方法定义两个String类型参数name和sex在main方法中调用无参构造和有参构造方法;调用无参构造方法输出:一个人被创建了;调用有参构造方法应根据输入的数据输出对应的结果,如输入:张三,男,则输出:姓名:张三,性别:男,被创建了。 测试说明 测试输入:张富贵,未知 预期输出: 一个人被创建了 姓名:张富贵,性别:未知,被创建了 2、以下代码有错误,请利用本关所学知识修改下面代码使其能输出如下结果: hello students 我叫贝贝 我喜欢学习java 请将修改后的正确代码写在后面四、实验结果中 public class Test { String name = "贝贝"; { System.out.println("hello students"); } public static void main(String[] args) { System.out.println("我叫" + name); study(); } public void study(){ System.out.println("我喜欢学习java"); } } 3、我已经帮你创建好了两个文件一个是WuMingFen.java,另一个是Test.java,你需要切换文件在两个文件中编写代码来完成任务。代码在四、实验结果2中。 为“无名的粉”写一个类: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对应的注释要求下写出代码。 4、四、实验结果中3题位置中已经编写好了代码,但是输出结果不能让我们满意,请根据所学知识修改代码,使其能输出如下结果: name:baby age:45 sex:女 测试说明 测试输入: baby,45,女 预期输出: name:baby age:45 sex:女 三、实验设备、材料 教材、互联网、微课 注意,以下学生作答部分全部用蓝色字体 |
四、实验结果 1、 //创建Person对象,并创建两种构造方法 /********** Begin **********/ import java.util.Scanner; public class person { private String name; private String sex; public person() { System.out.println("一个人被创建了"); } public person(String name, String sex) { this.name = name; this.sex = sex; System.out.println("姓名:" + name + ",性别:" + sex + ",被创建了"); }
public static void main(String[] args) { Scanner sc = new Scanner(System.in); String name = sc.next(); String sex = sc.next(); person person1 = new person(); //调用无参构造方法 person person2 = new person(name, sex); //调用有参构造方法 } } /********** End **********/ 2、修改后的代码为 public class Test { String name = "贝贝"; public Test() { System.out.println("hello students"); } public static void main(String[] args) { Test test = new Test(); System.out.println("我叫" + test.name); test.study(); } public void study(){ System.out.println("我喜欢学习java"); } } 3、 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(); //使用三个参数的构造方法创建WuMingFen对象 取名 f1 WuMingFen f1 = new WuMingFen(theMa, quantity, likeSoup); //使用两个参数的构造方法创建WuMingFen对象 取名 f2 WuMingFen f2 = new WuMingFen("牛肉", 2); //使用无参构造方法创建WuMingFen对象 取名 f3 WuMingFen f3 = new WuMingFen(); //分别调用三个类的 check方法 f1.check(); f2.check(); f3.check(); } } public class WuMingFen { private String theMa; private int quantity; private boolean likeSoup; //使用三个参数的构造方法创建WuMingFen对象 public WuMingFen(String theMa, int quantity, boolean likeSoup) { this.theMa = theMa; this.quantity = quantity; this.likeSoup = likeSoup; } //使用两个参数的构造方法创建WuMingFen对象 public WuMingFen(String theMa, int quantity) { this(theMa, quantity, true); } //使用无参构造方法创建WuMingFen对象 public WuMingFen() { this("酸辣", 2, true); } public void check() { System.out.println("面码:" + theMa + ",粉的分量:" + quantity + "两,是否带汤:" + (likeSoup ? "是" : "否")); } } 实验结果 4、 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 = "男"; public Person(String name,int age,String sex){ this(age); name = name; sex = sex; } public Person(int age){ age = age; } public void display(){ String name = "李四"; int age = 11; String sex = "男"; System.out.println("name:" + name); System.out.println("age:" + age); System.out.println("sex:" + 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 = "男"; 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); } } 实验结果: 五、实验总结(收获的知识) 构造方法可以有参数,也可以无参数; 构造方法无返回值,也不需要声明void关键字; 构造方法名必须和类名相同。 |
Java实验--类与对象
最新推荐文章于 2024-07-09 16:46:46 发布
本文介绍了Java编程中的类概念、构造方法的使用,包括无参和有参构造,以及如何在Person和WuMingFen类中实现构造方法和属性操作。通过实例演示和测试,学生巩固了类的创建及构造函数的运用知识。
摘要由CSDN通过智能技术生成