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

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

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

继承  、  多态   、 抽象  、 接口

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

今天的任务是,修改 面向对象① 中的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. char **argv 与char *argv[]

    1.char **argv 分析:argv是一个指针变量,argv的指向(*argv)是char *,也就是argv指向的也是一个指针 : *argv的指向(**argv)是char. 2.char ...

  2. Nexus-FEX基础配置

    1.FEX基本配置feature fex fex 100  pinning max-links 1  >>>>该值默认就是1  description "FEX100 ...

  3. RFID学习

    RFID:射频识别卡有读卡器和电子标签(有源/无源/半有源)组成,工作频率有LF/HF/UHF/MF,低频的通讯距离近(1m)常用来做门禁:高频的通讯距离远可以批量读取. 无源的轻巧/防拆一致性好,在 ...

  4. 科幻电影免费百度云分享(Scince-fiction cloud share)

    Marvel episode Link  Passcode:6h9k Star War full episode Link Passcode:7abk Men In Black Episode Col ...

  5. re.compile匹配

    import re string = '<h4 class="title">愤怒的葡萄</h4>' pattern = '<h4 class=&quo ...

  6. Centos610安装Firefox

    yum -y install firefox yum install fonts-chinese yum install fonts-ISO8859-2-75dpi 修改 /etc/sysconfig ...

  7. java8新特性1:lambda表达式和函数式接口

    1.lambda的介绍: 1.1.为什么java语言需要引入lambda表达式? java语言诞生于1995年,历史时间已经相对较长了.在其后的各种新型编程语言中,都有着lambda表达式的内容,并且 ...

  8. vmware fusion nat网络模式设置固定ip

    最近想在本地用虚拟环境搭一个k8s环境,但是发现虚拟机的ip会不定时自动变化,导致mosh客户端连接经常中断.于是就想让虚拟机的ip固定住,不再变动. mac 上的 vmware fusion 设置固 ...

  9. GSS系列题解——最大子段和系列

    开坑啦! 2019 3/28 以前一直不知道怎么搞最大子段和,如今终于可以学习,其实真的很简单啊. 2019 3/29 树链剖分上最大子段和也OK啦 前置技能:线段树 题目大意:询问区间[l,r]的最 ...

  10. IVM sdk command

    1.load sdk shell ./auto_load_user.sh 2.查看all端口状态 IVM:0>ifcs show devport 3.查看个别端口状态 IVM:0>ifcs ...