【Java】类与对象(实验二)

目录

一、实验目的

二、实验内容

三、实验小结


一、实验目的

  1. 掌握类的定义与对象的创建。
  2. 理解构造方法和this关键字的用法。
  3. 掌握对象对于属性及方法的引用。

二、实验内容

1、编写一个Java程序,定义一个表示学生的类Student,该类包括:

(1)这个类的属性有:“学号”、“班号”、“姓名”、“性别”、“年龄”,每个属性的类型请参考构造方法。

(2)为每个属性编写getter和setter方法。

提示:快速添加getter和setter的方法,以ecplise为例:先在要添加的位置上右键,然后source->Generate Getter and Setter,勾选要添加getter和setter的变量然后单击OK即可。

(3)编写构造方法为属性赋值。

public Student(long studentID,int classID,String name,String sex,int age)

(4)为类Student增加一个方法public String toString(),该方法把Student类的对象的所有属性信息组合成一个字符串以便输出显示。

(5)编写一个Java Application程序,创建2个Student类的对象,分别用构造方法和setter方法设置设置其属性值,输出2个对象的属性值。

源代码:

 实验运行截图:

2、编写一个 Java 应用程序,该程序中有两个类:Vehicle(用于表示机动车)和 User(主类)。

具体要求如下:

Vehicle 类有一个 double 类型的变量 speed,用于表示机动车的速度,一个 int 型变量 power,用于表示机动车的功率。类中定义了 speedUp(int s)方法,体现机动车有加速功能;定义了 speedDown()方法,体现机动车有减速功能;定义了 setPower(int p)方法,用于设置机动车的功率;定义了getPower()方法,用于获取机动车的功率。机动车的 UML图如上图所示。在主类 User 的 main()方法中用 Vehicle 类创建对象,并让该对象调用方法设置功率,演示加速和减速功能。

源代码:

 

实验运行截图:

 

3、编写一个 Java 应用程序,模拟家庭买一台电视,即家庭将电视作为自己的一个成员,即通过调用一个方法将某个电视的引用传递给自己的家庭成员。具体要求如下。

(1)有三个源文件:TV.java、Familiy.java 和 MainClass.java,其中 TV.java 中的 TV 类负

责创建“电视”对象,Family.java 中的 Family 类负责创建“家庭”对象,MainClass.java

是主类。

(2) 在主类的 main()方法中首先使用 TV 类创建一个对象 haierTV,然后使用 Familiy 类

再创建一个对象 zhangSanFamily,并将先前 TV 类的实例 haierTV 的引用传递给zhangSanFamily 对象的成员变量 homeTV。

Family 类组合 TV 类的实例的 UML 图如下图所示。

源代码:

 实验运行截图:

 4、编写程序模拟两个村庄共用同一口井水。编写一个 Village 类,该类有一个静态的 int 型成员变量 waterAmount,用于模拟井水的水量。在主类 Land 的 main()方法中创建两个村庄,一个村庄改变了 waterAmount 的值,另一个村庄查看 waterAmount 的值。

源代码:

 实验运行截图:

 

三、实验小结

1、类是组成java源文件的基本元素,一个源文件是由若干个类构成的。

2、类体中有成员变量和方法构成。成员变量分为类(static)变量和实例变量,其中类变量在程序开始运行时分配内存空间而实例变量是在创建类的对象的时候分配内存空间。方法有类(static)方法和实例方法,类方法在程序开始运行时分配内存接口地址、实例方法在创建对象时分配内存接口地址;类方法可以由类名或对象名调用、只能操作类变量或调用其它的类方法而实例方法只能由实例对象调用,可以修改类和实例变量调用其它实例和类方法。

3、通过对象名无法直接修改类变量的值但可以访问其值。

4、类变量和方法(类方法、实例方法)的内存地址被所有对象共享。而实例变量的内存地址为每个类对象独有。

5、对象内存中保存的只有实例变量数据、类(类变量和类方法)内存地址和实例方法所在内存接口的地址。所以通过对象可以操作类的实例变量和访问类变量,以及调用实例方法和类方法(*自我理解)。

6、构造方法没有返回值类型、方法名和类名相同。在实例化对象时自动调用构造方法。

7、如果一个对象(手机)中包含其它的对象(电池),则可以通过对象的组合,将另一个对象(电池)引用到当前对象(手机)的属性(成员变量)中。

8、定义类的成员中受访问权限的限制,如:private、public、protected、友好。其中private修饰的成员变量和方法,类的对象无法直接访问和调用; public修饰的成员变量和方法可以被当前或其他包中的类创建的对象直接访问和调用;默认不写即友好的和protected修饰的成员变量和方法只能被同包下类创建的对象直接访问和调用,其它包中的类创建的对象由于和当前友好成员的类不在同一个包中而无法直接访问友好或受保护的变量和调用友好或受保护的方法。Public修饰定义的类在其他包中使用import语句导入此公共类后,可以通过类名创建对象,否则其它的包导入此类后无法创建对象(不在同一个包名下)。

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

  • 33
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Orion Guan's 山月润无声

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值