Java实验--类与对象

本文介绍了Java编程中的类概念、构造方法的使用,包括无参和有参构造,以及如何在Person和WuMingFen类中实现构造方法和属性操作。通过实例演示和测试,学生巩固了类的创建及构造函数的运用知识。
摘要由CSDN通过智能技术生成

一、实验目的

本实验的目的是让学生巩固下列知识点:

  1. 理解类的概念;
  2. 掌握类的创建;

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关键字;

构造方法名必须和类名相同。

  • 42
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值