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

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

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

继承  、  多态   、 抽象  、 接口

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

今天的任务是,修改 面向对象① 中的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. C# worksheet设置Excel样式(转载)

    1.例子导出Excel的样式public void Exportdatagridviewtoexcel(string Textname) { SaveFileDialog savedialog = n ...

  2. 例题3_1 TeX中的引号(TeX Quotes,UVa 272)

    在TeX中,左双引号是“``”,右双引号是“''”.输入一篇包含双引号的文章,你的任务是把它转换成TeX的格式. 样例输入: "To be or not to be,"quoth ...

  3. HTML 入门第一课

    HTML 简单认识 HTML(HyperText Markup Language)即超文本标记语言,是一种用来制作超文本文档的简单标记语言,也是制作网页的最基本的语言,它可以直接由浏览器执行. 1.H ...

  4. MediaCreationTool制作WIN10安装U盘,安装纯净版win10的通用教程

    注意: 1.准备8G或8G以上U盘. 2.安装系统前备份好个人需要数据(制作U盘会格式化U盘,U盘内有需要的数据也事先备份好) 3.有预装office的务必记住自己激活office账户和密码以免重装后 ...

  5. vs2019本地调试异步程序

    1.vs2019创建一个webapi服务,启动本地webapi服务, 2.使用vs2019再打开一个相同的应用程序,并将异步程序所在的程序集设置为启动项,并启动,启动后点击调试->全部拆离 3. ...

  6. java怎么调用子类中父类被覆盖的方法

    public class b { { void show() { System.out.println("b"); } } public class c extends b { v ...

  7. 8.1.1默认的map函数、reduce函数、分区函数

    1.1.1         默认的map函数和reduce函数 (1)Maper和Reuducer默认类 如果没有指定maper类和reduce类,则会用默认的Maper和Reuducer类去处理数据 ...

  8. 02使用GitHub远程仓库

    一.远程库配置 由于本地的GIT仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要以下配置: 1.创建SSH key 为什么GitHub需要SSHKey:根据key来授权,有哪些key可以往 ...

  9. Elasticsearch 6.8.4 启动报错解决方法

    运行环境:centos 7,jdk 1.8 问题一: ERROR: bootstrap checks failed max ] ] 原因:无法创建本地文件问题,用户最大可创建文件数太小 解决方案:切换 ...

  10. Lucene的初步了解和学习

    Lucene的学习一,什么是全文检索 1.数据的分类 1.结构化数据 格式固定,长度固定,数据类型固定. 例如:数据库中的数据: 2.非结构化数据 word文档,pdf文档,邮件,html,txt 格 ...