java基础学习05(面向对象基础01--类实例分析)
面向对象基础01(类实例分析)
实现的目标
1.如何分析一个类(类的基本分析思路)
分析的思路
1.根据要求写出类所包含的属性
2.所有的属性都必须进行封装(private)
3.封装之后的属性通过setter和getter设置和取得
4.如果需要可以加入若干构造方法
5.再根据其它要求添加相应的方法
6.类中的所有方法都不要直接输出,而是交给被调用处调用
Demo
定义并测试一个名为Student的类,包括属性有"学号"、"姓名"以及3门课程"数学"、"英语","计算机"的成绩,包括的方法有计算3门课程的"总分"、"平均分"、"最高分"和"最低分"。
1.本类的属性及类型

2.定义出需要的方法(构造方法、普通方法)

3.类图

4.编写代码
/**
*1.定义一个Student类并测试该类
*/
class Student{
private String stuid; //学号
private String name; //姓名
private float math; //数学成绩
private float english; //英语成绩
private float computer; //计算机成绩
public Student(){
}
//定义5个参数的构造方法,为类中的属性初始化
public Student(String stuid,String name,float math,float english,float computer){
this.stuid = stuid;
this.name = name;
this.math = math;
this.english = english;
this.computer = computer;
}
public void setStuid(String stuid){
this.stuid = stuid;
}
public String getStuid(){
return this.stuid;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setMath(float math){
this.math = math;
}
public float getMath(){
return this.math;
}
public void setEnglish(float english){
this.english = english;
}
public float getEnglish(){
return this.english;
}
public void setComputer(float computer){
this.computer = computer;
}
public float getComputer(){
return this.computer;
}
public float sum(){
float sum = this.math + this.english + this.computer;
return sum;
}
public float avg(){
float avg = (this.math + this.english + this.computer)/3;
//float avg = this.sum()/3;
return avg;
}
public float max(){
float max = this.math;
max = this.english > max ? this.english:max;
max = this.computer > max ? this.computer:max;
return max;
}
public float min(){
float min = this.math;
min = this.english < min ? this.english:min;
min = this.computer < min ? this.computer:min;
return min;
}
}
/**
*1.编写测试类,测试以上代码
*/
class Demo01{
public static void main(String [] args){
Student stu1 = new Student("1114020116","张三",95.0f,78.0f,85.0f); //实例化Student对象并通过构造方法赋值
System.out.println("学号:"+stu1.getStuid());
System.out.println("姓名:"+stu1.getName());
System.out.println("数学成绩:"+stu1.getMath());
System.out.println("英语成绩:"+stu1.getEnglish());
System.out.println("计算机成绩:"+stu1.getComputer());
System.out.println("成绩总和:"+stu1.sum());
System.out.println("成绩平均值:"+stu1.avg());
System.out.println("最高分:"+stu1.max());
System.out.println("最低分:"+stu1.min());
}
}
Process started >>>
学号:1114020116
姓名:张三
数学成绩:95.0
英语成绩:78.0
计算机成绩:85.0
成绩总和:258.0
成绩平均值:86.0
最高分:95.0
最低分:78.0
<<< Process finished. (Exit code 0)
java基础学习05(面向对象基础01--类实例分析)的更多相关文章
- java基础学习05(面向对象基础01)
面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...
- java基础学习05(面向对象基础02)
面向对象基础02 实现的目标 1.String类的使用2.掌握this关键字的使用3.掌握static关键字的使用4.了解内部类 String类 实例化String对象一个字符串就是一个String类 ...
- Java JUC之Atomic系列12大类实例讲解和原理分解
Java JUC之Atomic系列12大类实例讲解和原理分解 2013-02-21 0个评论 作者:xieyuooo 收藏 我要投稿 在java6以后我们不但接触到了Loc ...
- java基础学习总结——面向对象2
一.JAVA类的定义
- Java学习 · 初识 面向对象基础一
面向对象基础 1.1面向过程与面向对象的区别 面向过程和面向对象二者都是思考问题的方式,再简单的事物时,可以线性思考时使用面向过程,但当事物较为复杂时,只能使用面向对象设计.但二者并不是对立的,在解决 ...
- Python学习之面向对象基础
python的面向对象和以前学的c++,Java都是一般,大同小异,面向对象基础先谈谈类的构造,编写,属性和方法的可见性等等 1.定义类,创建和使用对象 #定义类 class Student(obje ...
- JavaSE学习笔记05面向对象编程01
面向对象编程01 java的核心思想就是OOP 面向过程&面向对象 面向过程思想: 步骤清晰简单,第一步做什么,第二步做什么...... 面向过程适合处理一些较为简单的问题 面向对象思想: 物 ...
- python基础学习 Day19 面向对象的三大特性之多态、封装 property的用法(1)
一.课前内容回顾 继承作用:提高代码的重用性(要继承父类的子类都实现相同的方法:抽象类.接口) 继承解释:当你开始编写两个类的时候,出现了重复的代码,通过继承来简化代码,把重复的代码放在父类中. 单继 ...
- python基础学习 Day19 面向对象的三大特性之多态、封装
一.课前内容回顾 继承作用:提高代码的重用性(要继承父类的子类都实现相同的方法:抽象类.接口) 继承解释:当你开始编写两个类的时候,出现了重复的代码,通过继承来简化代码,把重复的代码放在父类中. 单继 ...
随机推荐
- 微信获取nickname中存在Emoji导致保存为空问题的解决
微信开发时候,有些用户使用Emoji表情作为用户昵称,导致数据库保存昵称时候不识别导致昵称为空,现在提出以下解决方案: /** +----------------------------------- ...
- 2015年11月26日 Java基础系列(四)class的定义,继承和实现interface
序,类的设计是JAVA操作的核心,面对对象思想中一切皆对象. 一.类定义中的变量 静态成员变量,为类所有,称为类变量:只有一份,编译时即分配值,使用关键字static声明. 非静态成员变量,每个实例一 ...
- 一道Twitter面试题
在微博上看到的这个问题,忍住没看答案自己解决了.建议没看过的同学也自己先尝试下. “看下面这个图片” 在这个图片里我们有不同高度的墙.这个图片由一个整数数组所代表,数组中每个数是墙的高度.上边的图可以 ...
- 2015多校.Zero Escape (dp减枝 && 滚动数组)
Zero Escape Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Tot ...
- 【C语言入门教程】4.1 一维数组
数组与指针涉及到数据在内存中的存储位置问题,数组由连续的存储单元组成,最低地址对应于数组的第一个单元,最高地址对应于数组的最后一个单元.指针是一种特殊的变量,该变量所存放的是内存地址,通过指针变量可访 ...
- 非阻塞SOCKET套接字connect等待时间的实现
SOCKET cClient; cClient=socket(AF_INET,SOCK_STREAM,0); //设置为非阻塞套接字 int iMode = 1; i ...
- iOS开发——多线程篇——NSThread
一.基本使用1.创建和启动线程一个NSThread对象就代表一条线程 创建.启动线程NSThread *thread = [[NSThread alloc] initWithTarget:self s ...
- 安装和配置VNC服务器的法则
导读 这是一个关于怎样在你的 CentOS 7 上安装配置VNC服务的教程.当然这个教程也适合 RHEL 7 .在这个教程里,我们将学习什么是 VNC 以及怎样在 CentOS 7 上安装配置VNC ...
- 简述JavaScript的运行机制
想要理解JavaScript的运行机制,需要分别深刻理解以下几个点: · JavaScript的单线程机制 · 任务队列(同步任务和异步任务) · 事件和回调函数 · 定时器 · Event Loop ...
- 160809209_李梦鑫_C语言程序设计实验2+选择结构程序设计_进阶
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吴喆 实验地点 C05 机 ...