Java面向对象基础:Student与Husband/Wife类实践
需积分: 0 118 浏览量
更新于2024-08-03
1
收藏 90KB PDF 举报
“初识Java面向对象编程,包括基础的类定义、对象创建及属性访问,以及类之间的关联关系。”
在Java编程中,面向对象(Object-Oriented Programming, OOP)是一种重要的编程范式,它将程序设计为由多个相互协作的对象组成。面向对象的核心概念包括封装、继承和多态。以下将详细介绍这两个面向对象的基础题目。
题目一 主要涉及类的定义、对象的创建以及属性的访问和设置。在这个题目中,我们需要创建一个名为`Student`的类,包含以下属性:`name`(String类型,表示学生姓名)、`gender`(String类型,表示性别)、`age`(int类型,表示年龄)、`id`(int类型,表示学号)、`score`(double类型,表示分数)。同时,我们需要在`Student`类中定义一个`say`方法,返回一个字符串,该字符串包含了所有属性的值。
```java
public class Student {
String name;
String gender;
int age;
int id;
double score;
public String say() {
return name + "," + gender + "," + age + "," + id + "," + score;
}
}
```
在`StudentTest`类的`main`方法中,我们创建一个`Student`对象`p1`,并初始化其属性,然后调用`say`方法打印学生的信息:
```java
public class StudentTest {
public static void main(String[] args) {
Student p1 = new Student();
p1.name = "张三";
p1.score = 90;
p1.age = 18;
p1.id = 2;
p1.gender = "男";
System.out.println(p1.say());
}
}
```
题目二 这个题目展示了类之间的关联关系,特别是夫妻(Husband和Wife)类的定义。丈夫类`Husband`和妻子类`Wife`都有姓名和年龄属性,此外,丈夫类有一个妻子属性,妻子类有一个丈夫属性。每个类都包含一个`getInfo`方法,用于打印各自的信息,包括配偶的姓名和年龄。
```java
public class Husband {
String name;
int age;
Wife wife;
public void getInfo() {
System.out.println(age + "岁的" + name + ",他的妻子是" + wife.age + "岁的" + wife.name);
}
}
public class Wife {
String name;
int age;
Husband husband;
public void getInfo() {
System.out.println(age + "岁的" + name + ",她的丈夫是" + husband.age + "岁的" + husband.name);
}
}
```
在测试类中,我们创建一个`Husband`对象`man`和一个`Wife`对象`women`,并分别设置他们的属性,然后调用各自的`getInfo`方法:
```java
public class Test {
public static void main(String[] args) {
Husband man = new Husband();
Woman woman = new Wife();
man.name = "张三";
man.age = 30;
woman.name = "李四";
woman.age = 28;
man.wife = woman;
woman.husband = man;
man.getInfo();
woman.getInfo();
}
}
```
通过这两个题目,我们可以学习到Java中如何定义类、初始化对象、设置和访问属性,以及如何通过方法来展示对象的状态。同时,也了解了类之间如何通过属性建立关联关系,这是构建复杂系统的基础。
点击了解资源详情
194 浏览量
197 浏览量
383 浏览量
2025-03-10 上传
149 浏览量
157 浏览量
125 浏览量
136 浏览量

82瓜
- 粉丝: 67
最新资源
- Win7系统下的一键式笔记本显示器关闭解决方案
- 免费替代Visio的流程图软件:DiaPortable
- Polymer 2.0封装的LineUp.js交互式数据可视化库
- Kotlin编写的Linux Shell工具Kash:强大而优雅的命令行体验
- 开源海军贸易模拟《OpenPatrician》重现中世纪北海繁荣
- Oracle 11g 32位客户端安装与链接指南
- 创造js实现的色彩识别小游戏「看你有多色」
- 构建Mortal Kombat Toasty展示组件:Stencil技术揭秘
- 仿驱动之家触屏版手机wap硬件网站模板源码
- babel-plugin-inferno:JSX转InfernoJS vNode插件指南
- 软件开发中编码规范的重要性与命名原则
- 免费进销存软件的两个月试用体验
- 树莓派从A到Z的Linux开发完全指南
- 晚霞天空盒资源下载 - 美丽实用的360度全景贴图
- perfandpubtools:MATLAB性能分析与发布工具集
- WPF圆饼图控件源代码分享:轻量级实现