Java类和对象
Posted 菜菜小谭
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java类和对象相关的知识,希望对你有一定的参考价值。
***************************第六章 类和对象*********************************
***************************面向过程和面向对象的区别**************************
一.面向过程
c语言
关心是how 怎么做 即具体的实现步骤、实现细节
需求: 把大象装冰箱.....
第一步 把冰箱门打开
第二步: 把大象装冰箱
第三步: 把冰箱门关上
二.面向对象
关心的是 what 做什么 使用者只需要关心做什么即可
至于怎么做封装到方法中,由类的设计者关心,方法本身是面向过程的..
1. 先设计一个类 Person 人
行为(方法):把大象装冰箱
2.创建对象
Person p = new Person();
3. 调用对象的方法
p.把大象装冰箱();
面向对象语言的好处:
可读性强、可维护性强,能够应对大型软件的需要 解决软件危机问题
软件危机: 随着项目的不断壮大,使用面向过程语言开发的程序,越来越臃肿、越来越
难维护,造成工期一拖再拖、甚至根本无法完成的情况叫做软件危机...
***************************面向对象的设计思想**************************
模拟现实世界 这样的好处是让编程更加容易、更好理解
面向对象贴近于人的思维...
面向过程更贴近于计算机的思维
一个程序就是一个世界!
***************************类和对象的概念**************************
现实世界 编程世界
具体的树 Tree的对象
具体的车 Car的对象
具体的小狗 Dog的对象
具体的学生
对象: 用来模拟现实世界中的事物....
1.属性
学生对象的属性 学号、姓名、性别、专业.....
2.行为
吃饭、学习、考试.....
类: 相同属性和相同操作的对象的集合.....Student类
一个类可以创建多个对象,创建对象也叫做实例化一个对象
类是对象的(抽象)、是对象的(模板),对象是类的(实例)
**********************UML图***********************************
UML 统一建模语言 方便程序员交流
一.类图
UML中使用矩形来表示类图,分为上中下三部分
上: 类名
中间: 属性
下面: 行为
对象图和类图有什么区别???
二.对象图
包含两部分
1. 上面
对象名: 类名
名称下面有一个下划线
2.下面:
属性=值
注意: 对象图没有行为
*********************面向对象的好处(活字印刷 曹操的故事)***************************
面向过程:雕版印刷
面向对象:活字印刷
面向过程------------->面向对象
雕版印刷------------->活字印刷
1.曹操(客户)
2.大臣(项目经理)
3.工匠(程序猿)
需求1:喝酒唱歌,人生真爽!
需求2: 对酒当歌,人生真爽!!
需求3: 对酒当歌,人生几何...
面向对象的优点:
一.可复用
类: 每一个活字(喝)
对象: 具体的印到书上的文字..
一个类可以创建多个对象
代码是可以重复使用的...
类的代码是可复用的,可以使用这个类创建多个对象...
如果没有类, 创建多个对象,每个对象的代码还都要从新写一遍....
方法也体现了可复用....
二.可维护
容易维护、改动比较少
活字印刷只需要改几个字就可以了,而雕版印刷需要整个重新制版
三.可扩展
活字印刷可以随意加字
四.灵活性强
横着排---->竖着排 雕版印刷还需要重新制版 而活字印刷只需要调整文字的位置就可以了
可读性强...
**********************使用系统提供的现有类创建对象************************************
类名 对象名 = new 类名();
1. String s = new String("aaa");
2. Integer integerI = new Integer(10);
3. Object obj = new Object();// Object 所有类的父类
----
4. Person p = new Person();
**********************一.类的定义***********************************
class 类名{
//1.属性(成员变量)
//2.行为(方法)
}
类名使用大驼峰规范...
演示代码:
package com.chapter6;
/**
* 作者: zhangzy
* 公司: 蓝桥软件学院
* 时间: 2017年6月30日 上午11:07:24
* 功能: 演示类的定义
*/
public class Student {
//1.属性
int sno;//学号
String name;//姓名
int age;//年龄
//2.行为
public void study(){
System.out.println("我是" + name + ",我在学习");
}
public void exam(){
System.out.println("考试");
}
}
**********************二.创建对象***********************************
Student s = new Student();
**********************三.访问对象的属性和调用对象的方法*****************
一.访问属性
对象名.属性名
二.调用方法
1.静态方法
类名.方法名();
2.实例方法
(1)
类名 对象名 = new 类名();
对象名.方法名();
演示代码:
package com.chapter6;
public class TestStudent {
public static void main(String[] args) {
// 2.创建对象
// 类名 对象名 = new 类名();
Student s1 = new Student();
// 访问属性
s1.sno = 1;
s1.name = "丁泽鹏";
s1.age = 20;
// 调用方法
s1.study();
// 创建另一个学生对象
Student s2 = new Student();
// 访问属性
s2.sno = 2;
s2.name = "王钰龙";
s2.age = 21;
// 调用方法
s2.study();
}
}
***************************封装性(面向对象的三大特性之一)*********************************
面向对象的三大特性:
1.封装
2.多态
3.继承
一门语言至少需要拥有以上三种特性,才可以称为面向对象的语言...
封装:
1. 封装成类
把属性和方法 放到 类里面,叫做封装成一个类
2. 封装成方法
把若干句代码 放到方法中,封装成方法
良好的封装
1.对于属性而言
需要使用private来修饰属性,为了保证信息的安全和隐蔽
private 私有的 只有本类可以访问
如果不加private 别人可以随意的修改或访问你的属性,显然不安全,比如别人随意修改你的姓名、年龄、甚至
是性别..
2.对于方法而言
要使用public 来修饰
public 公有的 任何人都可以使用
定义出方法来 一般是让别人使用的 为了让别人使用 需要使用public来修饰
************************对象(类)之间的四种关系****************************
对象是用来模拟现实世界中的事物,现实世界中 事物之间有着千丝万缕的联系
为了模拟事物之间的关系,对象之间肯定也有关系
一.关联关系
用来模拟对象之间 最基本的联系、它是一种可以互相访问的关系
老师----------学生
*****方向性
1. 单向关联
老师---------->学生
2. 双向关联
老师----------学生
*****多重性
1:1 一对一
人:身份证 学生: 学号 一个人: 老婆
1:M 一对多
学校:学生
公司:职员
老师:学生(蓝桥)
M:N 多对多
学生:课程
老师:学生(在学校里)
************************关联的两个特例: 组合和聚合 has a****************************
整体 has a 部分
篮球队 has a 球员
共同点:
都是整体和部分之间的关系...
区别:
1. 聚合
部分可以属于多个整体, 部分和整体之间关系不是特别紧密,部分和整体的生命周期不一致
一个人既可以参加篮球队、又可以参加足球队....
学生既属于蓝桥这个班级、又属于自己学校的班级....
空心菱形表示,空心菱形所在位置是整体
2. 组合
部分只能属于一个整体,部分和整体的关系比较紧密, 部分消失了整体也消失了,它们的生命周期是一致的..
四肢(心脏)和人、 发动机和汽车
实心菱形表示,实心菱形所在位置是整体
************************二.继承关系 is a***************************
一般和特殊之间的关系
实现+ 空心三角 表示继承关系
************************三.实现关系 ***************************
实现一组规范....
学生规范
教师规范
厨师规范
实现了这组规范就可以称为厨师....
UML中 使用 虚线 + 空心三角 表示 实现表示
************************四.依赖关系 ***************************
类A - - - - - - - - >类B
当类B变了,类A也跟着变, 叫做类A依赖于类B
学生- - - - - - - - - >父母
笔记本的工作 - - - - - - - > 屏幕
以上是关于Java类和对象的主要内容,如果未能解决你的问题,请参考以下文章