9/29-10/5 java学习总结(没有课堂的课后学习总结) &实验总结4
9/29-10/5 java学习总结(没有课堂的课后学习总结) &实验总结4
ps:这周上课请假了,不知道上课讲了什么,就进行一下前一个月学习java的总结吧
首先说一下java是什么:面向对象程序设计是一种编程架构,面向对象程序设计(Object Oriented Programming,OOP)是一种编程架 构,是一种运用对象、类、继承、封装、聚合、关联、消息和多态等概念来构造系统的软件开发方法。在这之前的设计方法还有面向机器,面向过程,最终现在使用的设计方法是面向对象的设计方法,经过这个月的学习我觉得的面向对象程序设计更强调从客观的事物中来解决问题,更强调在程序中表达人的思想,电脑这东西,感觉发展到最后是不会犯错的高效人脑。
面向对象程序设计的特点
抽象性 采用数据抽象的方法来构 建程序的类、对象和方法, 体现了面向对象技术中处 理复杂事务的分层分类机 制。
封装性 将数据和基于数据的操作 封装在一起,体现了面向 对象技术中的信息隐藏机 制,程序不易被相互干扰。
多态性 一个程序中可以有同名的不同 方法共存,体现了面向对象技 术中的同名方法用不同代码实 现的灵活性。
继承性 一个类可以从其它已有的类 中派生,体现了面向对象技 术中的共享机制,可以降低 编码和维护的工作量。
面向对象程序设计常用的七种术语
对象(object):是系统中 用来描述客观事物的一个实体, 是构成系统的一个基本单位, 由一组属性和施加于这组属性的 一组操作构成。
对象之间的关系有包含,继承和关联
例:当对象A是对象B的组成部分时,称对象B包含对象A
当对象A是对象B的特例时,称对象A继承了对象B
当对象A拥有(使用)对象B时,称对象A和对象B之间是关联关系
属性:用来描述对象静态特征 (状态)的一个数据项 (专业术语:成员变量)
属性一般就是成员变量,属性的定义规则是:set/get方法名,去掉set/get后,将剩余部分首字母小写得到的字符串就是这个类的属性。
操作:用来描述对象动态特 征(行为)的一个动作系列。 (专业术语:方法)
太多了不一一列举了。
类:(class):是具有相同属性和操作的一组对象的集合, 它为属于该类的全部对象提供了统一的抽象描述,由一个类名、一组属性和一组操作构成
封装:就是把对象的属性和操作结合成一个独立的系统单位,并尽可能隐藏对象的内部细节
什么是封装哪?
封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。
继承:是指特殊类(子类)可以自动拥有一般类(父类)的全部属性和操作。特殊类可以有自己定义的属性和操作,继承关系是代代传递的。
继承的特点:
1.只支持单继承,即一个子类只允许有一个父类。
2. 子类可以拥有父类的属性和方法
3. 子类可以拥有自己的属性和方法
4. 子类可以重写覆盖父类的方法
继承的类别
- 排序类-实现排序
- 反转类-实现数据反向存放
注意事项
- 可以继承父类的public和protected成员变量;不能够继承父类的private成员变量
- 访问权限成员变量的时候只有子类和父类在同一个包下才能继承
- 子类不能继承父类的构造器
多态:是指在一般类中定义的属性或操作被特殊类继承之后,可以具有不同的数据类型或表现 出不同的行为。
实验报告4
一.实验目的
(1)掌握类的继承
(2)变量的继承和覆盖,方法的继承,重载和覆盖的实现;
二.实验的内容
(1)根据下面的要求实现圆类Circle。
1.圆类Circle的成员变量:radius表示圆的半径。
2.圆类Circle的方法成员:
Circle():构造方法,将半径置0
Circle(double r):构造方法,创建Circle对象时将半径初始化为r
double getRadius():获得圆的半径值
double getPerimeter():获得圆的周长
void disp():将圆的半径和圆的周长,圆的面积输出到屏幕
(2)继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:
1.圆柱体类Cylinder的成员变量:height表示圆柱体的高。
2.圆柱体类Cylinder的成员方法:
Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h。
double getHeight():获得圆柱体的高
double getVol():获得圆柱体的体积
void dispVol():将圆柱体的体积输出到屏幕
3.按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积
package first; public class txt { private double radius; public txt() { radius=0; } public txt(double r) { //初始化 radius=r; } public double getRadius() { //读取半径 return radius; } public void setRadius(double radius) { //设置半径 this.radius = radius; } public double getPerimeter() { // 求圆的周长 return 2*Math.PI*radius; } public double getArea() { // 求圆的面积 return Math.PI*Math.pow(radius,2); } public static void main(String[] args) { txt c = new txt(9); System.out.println("c:"+c.getPerimeter()); System.out.println("r:"+c.getRadius()); System.out.println("s:"+c.getArea()); } }
后面的题还没做出来,可能是最新版本的原因用起来感觉有点问题,和网上教程有点区别,后面的我先去看看网课补一下缺的内容再整把