我们在  面向对象①中学习了,结构化程序设计。

今天我们一起学习面向对象程序设计。

学习面向对象程序设计就要了解,在面向对象中重要的知识点。

继承  、  多态   、 抽象  、 接口

我们会在接下来的课程中一一学习。

今天的任务是,修改 面向对象① 中的Student类,进行面向对象程序设计。

Student类

public class Student {
public final static byte MALE = ;
public final static byte FEMALE = ;
public final static byte UNDERGRAFUATION = ;
public final static byte SPECIAL = ; private String name; //学生姓名
private byte sex; // 性别(性别男、女)
private byte level; //学历水平(本科 专科)
private int grade; //年级
// 私有的外界不能访问,需要通过getter setter方法访问 public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getSex() {
return sex==MALE?"男":"女";
} public void setSex(byte sex) {
if (sex!=&&sex!=){
return;
}
this.sex = sex;
} public String getLevel() {
return level==?"本科":"专科";
} public void setLevel(byte level) {
if (level!=&&level!=){
return;
}
this.level = level;
} public int getGrade() {
return grade;
} public void setGrade(int grade) {
this.grade = grade;
} /**
* 初始化
*/
public void init(){
name = "张三";
sex = MALE;
level = SPECIAL;
grade = ;
}
/**
* 升级
*/
public void upgrade(){
grade++;
if (level==&&grade>){
grade = ;
}
if (level==&&grade>){
grade = ;
}
} public void downgrade(){
grade--;
grade = grade<?:grade;
} /**
* 输出函数,输出学生的信息。
*/
public void print(){
System.out.println("输出姓名:"+name);
System.out.println("输出性别:"+getSex());
System.out.println("输出学历:"+getLevel());
System.out.println("输出年级:"+grade);
} }

测试主函数:

public class Test {

    public static void main(String[] args) {
Student stu = new Student();
stu.init(); //函数赋值 stu.print();
System.out.println(); stu.upgrade();
stu.print();
} }

测试结果:

输出结果和上一篇案例2的输出结果一致。

我们修改了上一篇的性别,学历水平表示方法。

发现不用修改多处信息,这就是面向对象的好处。

总结一下学习的新知识点。

性别用byte,  使用的好处是,byte储存空间大小位1字节,不易出错。

私有变量是属于类自己的,外界要的到只能通过getter 和 setter方法。

getter和setter方法快速生成如下图所示:

在编译器上右击--->选择generate---->点击Getter and Setter---->选择私有变量

然后就得到了Getter and Setter方法。

性别跟学历是byte类型,如果我们想要返回(return)一个字符串,就要把函数的类型改成String。

java学习-初级入门-面向对象②-面向对象概述-面向对象程序设计的更多相关文章

  1. java学习-初级入门-面向对象①-面向对象概述-结构化程序设计

    为了学习面向对象程序设计,今天我们先利用面向对象以前的知识,设计一个学生类. 要求进行结构化程序设计. 学生类: Student 要求:存储学生的基本信息(姓名.性别.学历层次和年级),实现学生信息的 ...

  2. java学习-初级入门-面向对象⑥-类与对象-静态static

    这次我们来学习静态(static) 知识点 1.静态方法只能调用静态变量 2.静态变量属于整个Class,会随着发生变化. 案例:定义一个自动增长的学生类. 题目要求: 定义一个学生类,除了姓名.性别 ...

  3. java学习-初级入门-面向对象⑤-类与对象-类与对象的定义和使用3

    这次我们要做一个日期类Date类 主要目的是    1.  熟悉-->构造不同参数的函数  2.善于利用已有的函数!! 题目要求: Date类要求 可设定年月日 可转换为字符串,并可指定分隔符, ...

  4. java学习-初级入门-面向对象④-类与对象-类与对象的定义和使用2

    我们继续学习类与对象,上一篇我们定义了  坐标类(Point), 这次我们在Point的基础上,创建一个圆类(Circle). 案例:创建一个圆类 题目要求: 计算圆的周长和面积:求判断两个圆的位置关 ...

  5. java学习-初级入门-面向对象③-类与对象-类与对象的定义和使用1

    今天学习类与对象.先大致解释一下类与对象的含义. 对象:object 有物体这一概念,一切皆对象(物体),对象由静态的属性和动态的行为组成. 比如说水杯: 水杯的静态属性:材质,容量,质量,颜色 动态 ...

  6. Java入门-浅析Java学习从入门到精通【转】

    一. JDK (Java Development Kit)  JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库 ...

  7. 真正的Java学习从入门到精通

    http://www.it.com.cn/f/edu/059/6/169189.htm 一. 工具篇JDK (Java Development Kit) JDK是整个Java的核心,包括了Java运行 ...

  8. Java学习从入门到精通(2) [转载]

    Java Learning Path(二).书籍篇 学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握.需要有一个循序渐进的阅读过程.我推荐Oreilly出版的Java系列书籍. 在这里我 ...

  9. Java性能测试从入门到放弃-概述篇

    Java性能测试从入门到放弃-概念篇 辅助工具 Jmeter: Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试.JMeter 可以用于对服务器.网络 ...

随机推荐

  1. 浅谈python中__str__和__repr__的区别

    很多时候我们在创建一个类的时候,在终端打印类或者查看的时候一般都不会得到一个太满意的结果 class T: def __init__(self): self.color="red" ...

  2. Qt5基于smtp服务发送电子邮件

    1.设置邮箱 先登录163邮箱,然后在邮箱界面找到设置,在里面开通smtp服务. 这一步比较关键,要开通smtp服务,在开通的过程中会让你输入一个邮箱客户端授权码,这个才是你后面要用到的密码,而不是你 ...

  3. html 中js 如何给字符串加换行符

    var str = 你好'+"\n"+ '世界'; 这种写法在html中是会被识别为"你好\n世界" 那么如何保证其这么写会被识别,只需要在该div的样式中加入 ...

  4. 吴裕雄--天生自然Numpy库学习笔记:NumPy 字节交换

    大端模式:指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放 小端模式:指数据的高字节保 ...

  5. IO课堂测试

    一,用户需求 英语的26 个字母的频率在一本小说中是如何分布的?某类型文章中常出现的单词是什么?某作家最常用的词汇是什么?<哈利波特与魔法石> 中最常用的短语是什么,等等. (1)要求1: ...

  6. 洗牌利器——random.shuffle()函数

    random.shuffle()是一个非常实用但是又非常容易被忽略的函数,shuffle在英语里是"洗牌"的意思,该函数非常形象地模拟了洗牌的过程,即: random.shuffl ...

  7. PCSearch

    1.hinstance:GetModuleHandle(NULL) 2.窗口直角: 方法1:在Oncreate函数中添加以下代码,然而这种方法会导致窗口阴影无效 LONG styleValue = : ...

  8. Centos610无桌面安装Docker-安装

    1.必备环境 设定docker源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.rep ...

  9. 类似discuz密码的生成规则

    /* 生成一个串,uniqid(rand()): uniqid(prefix,more_entropy) 函数基于以微秒计的当前时间,生成一个唯一的 ID. 如果 prefix 参数为空,则返回的字符 ...

  10. C语言笔记 12_可变参数&内存管理&命令行参数

    可变参数 有时,您可能会碰到这样的情况,您希望函数带有可变数量的参数,而不是预定义数量的参数.C 语言为这种情况提供了一个解决方案,它允许您定义一个函数,能根据具体的需求接受可变数量的参数.下面的实例 ...