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类和对象的主要内容,如果未能解决你的问题,请参考以下文章

使用Java语言深入理解程序逻辑——类和对象

使用Java语言深入理解程序逻辑——类和对象

使用Java语言深入理解程序逻辑——类和对象

Java —类和对象

java-类和对象

Java系列类和对象中需要注意的事情