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

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

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

继承  、  多态   、 抽象  、 接口

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

今天的任务是,修改 面向对象① 中的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. 201771010135杨蓉庆《面向对象程序设计(java)》第六周学习总结

    实验六 继承定义与使用 1.实验目的与要求 (1) 理解继承的定义: (2) 掌握子类的定义要求 (3) 掌握多态性的概念及用法: (4) 掌握抽象类的定义及用途: (5) 掌握类中4个成员访问权限修 ...

  2. CN109241772A发票区块链记录方法、装置、区块链网关服务器和介质(腾讯)

    学习笔记-2 CN109241772A发票区块链记录方法.装置.区块链网关服务器和介质(腾讯) 解决什么问题? 让发票信息记录到区块链的情况下减少发票信息泄露 链上有什么数据? 发行发票事件信息(发票 ...

  3. 吴裕雄--天生自然Numpy库学习笔记:NumPy 迭代数组

    import numpy as np a = np.arange(6).reshape(2,3) print ('原始数组是:') print (a) print ('\n') print ('迭代输 ...

  4. CocosCreator内存与性能优化

    一.内存优化 因为 iOS小游戏和微信共用同一个进程,而微信在连续两次收到系统内存警告的时候会关闭小游戏并释放小游戏占用的内存.如果你的小游戏有外网用户反馈“闪退”,或者你自己测试的时候频繁出现“该小 ...

  5. FileUpload之FileItem类的常用方法

    http://blog.csdn.net/chinaliuyan/article/details/7002014

  6. IIS 7.5 URL重写参数

    URL 重写规则由以下部分组成: 模式 - 可以理解为规则,分通配符和正则匹配     条件 - 可以理解为字符串     操作 - 操作用于指定如果URL字符串与规则模式匹配并且满足所有规则条件时应 ...

  7. 基础总结篇之七:ContentProvider之读写短消息

    转自:http://blog.csdn.net/wellsoho/article/details/49494167 今天我们来讲一下如何利用ContentProvider读写短消息. 上次我们讲了如何 ...

  8. iOS 混合开发之 Cordova 实践

    在15年时,之前公司使用 Cordova 做混合开发使用,后来公司没有用到了,现在重新记录下. Cordova (官网:http://cordova.apache.org/)简介: Apache Co ...

  9. 使用new时,会发生什么?

    使用new来调用函数,或者说发生构造函数调用时,会自动执行下面的操作: 创建(或说构造)一个全新的对象. 这个新对象会被执行[[prototype]]连接. 这个新对象会绑定到函数调用的this. 如 ...

  10. day04-MyBatis的缓存与懒加载

    为什么会用到缓存? 为了减少与数据库链接所消耗的时间,将查询到的内容放到内存中去,下次查询直接取用就ok了. 缓存的适应场景: 1.经常查询并且不经常改变的. 2.数据的正确与否对最终结果影响不大的. ...