<JavaSE学习笔记>面向对象(1):类与对象的概念
来源:互联网 发布:java json解析string 编辑:程序博客网 时间:2024/05/01 19:24
类与对象的概念
一 面向对象的基本概念
面向对象程序设计(简称OOP)是当今主流的程序设计范型。对于一些规模较小的问题,使用传统的面向过程的开发方式比较理想。但问题一旦上了规模,采用面向对象的设计风格,更易于程序员对代码的理解与维护。程序员只要知道所需修改的代码属于于哪一类中,就可以很快对其定位,而不必像面向过程那样浏览整个繁琐的过程。
二 类与对象
类(class)是面向对象中的一个核心概念。在Java中,没有类的话那么程序员将无法做任何事情。我们可以把类想象成一种设计图纸,里面描述了一类事物的公共属性与公共行为,通过设计图纸来创建这些事物(对象)。例如,我们要设计一个描述办理学生的类,那么哪些属性是公共的呢?首先,作为一个学生,我们要有标示身份的东西,那就是姓名和学号。每一个学生都要上学,那么在学校的这段时间里面,又存在着一些公共的行为,例如,上课,吃午餐等等。对于同一个类的所有对象实例,由于支持相同的行为而具有家族式的相似性。类与其对象的关系可以用下图展示:
要注意的是:在现实生活中,我们在认知的时候,往往由某一个或多个具体事物,来概括和了解这一类事物。然而在程序设计中,我们是先设计类,再来创建具体的对象。
三 类与类之间的关系
类与类之间存在着以下的几种关系:
(1)继承:这是面向对象中最常见的关系之一,这种关系表示了一种特殊(子类)与一般(父类)的关系。例如:我们有一个汽车类,里面描述了制造一辆汽车所需的基本零配件。我们还有一个跑车类,这个类除了包含了汽车类里面所有的零配件以外,还描述了跑车特有的一些零配件(例如:特殊的发动机与轮胎等)。继承的知识点在之后会详尽介绍。
(2)依赖:当A类的方法操纵着B类的对象时,我们称之为依赖关系。例如:我们有一个餐厅类,里面有一个方法(行为)叫做“制作美食”,还有一个方法叫做“购买原料”。“购买原料”这个方法里面维护了一个“原料类”的对象。因为我们在购买原料的时候,查看各个原料的状态。这时,我们就说“餐厅类”依赖于“原料类”。
(3)聚合:聚合关系意味着一个类的对象中维护着另一个类的对象。
四 设计一个自定义类
Java为开发者提供了许多预定义类,开发者可以根据需要调用Java核心类库中的这些预定义类而不用重复造轮子。在这里,我们先不使用这些预定义类,而从最简单的自定义类开始研究如何设计一个类。
基本步骤:
1. 设计一个类名-----基本格式:访问修饰符 class 类名
2. 设计类的属性-----基本格式:数据类型 变量名
3. 设计类的构造方法----基本格式:访问修饰符 类名 (行参列表)
4. 设计类内的方法----基本格式:范围修饰符 返回值 方法名 (行参列表)
例子1:学生类
//创建一个学生类class Student{//公共属性String name;String sex;int grade;int ID;//构造方法public Student(String name,String sex,int grade,int ID){this.ID = ID;this.grade = grade;this.name = name;this.sex = sex;}//公共行为:上课public void attendClass(){System.out.println("认真听讲");}}
设计好这个类之后该如何使用呢?
例子2:学生类实例化
public class ClassPractice03 { //Java类描述学生public static void main(String[] args){//将学生类的对象实例化Student m = new Student("李雷","male", 2, 3);//查看对象的属性System.out.println(m.grade);System.out.println(m.ID);System.out.println(m.name);System.out.println(m.sex);}}
2. ClassPractice03的源文件名为ClassPractice03.java,这是因为文件名必须与public类的名字相匹配。在一个源文件中,只能有一个公有类,但可以有任意数目的非公有类。
0 0
- <JavaSE学习笔记>面向对象(1):类与对象的概念
- 学习笔记之JavaSE(10)--面向对象编程1
- JavaSE学习(5)面向对象编程--类与对象(1)
- JAVA(七)java面向对象1-面向对象的概念,类与对象
- JavaSE学习--面向对象
- [javase学习笔记]-6.2 类与对象的关系
- JavaSE基础学习笔记-面向对象01
- JavaSE学习笔记_3:Java面向对象
- JavaSE学习笔记之-----面向对象
- JavaSE面向对象学习笔记总结
- [javase学习笔记]-6.1 面向对象的概述
- JavaSE学习(6) 面向对象类和对象(2)
- JavaSE学习(6) 面向对象类和对象(3)
- 【JavaSE学习笔记】面向对象_static关键字、代码块、API文档的使用与制作
- javaSE学习笔记之面向对象程序设计(一)
- javaSE学习笔记之面向对象程序设计(二)
- <JavaSE学习笔记>面向对象(2):Java内存机制
- 学习笔记之JavaSE(11)--面向对象编程2
- mysql远程访问权限
- 一样是程序员,为什么你付出的汗水和想得到的成功不成正比
- MyBatis总结
- android学习 view的事件体系
- 我的博客今天0岁345天了,我领取了…
- <JavaSE学习笔记>面向对象(1):类与对象的概念
- 提升开发效率之工具篇
- 用Android studio创建Cocos2d-x 3.X项目
- 支持触屏的jQuery响应式幻灯片展示插件Image Lightbox
- asdasda
- 轻松让wifi改装件控制其他信号电路通断
- 为什么析构函数要定义为虚函数
- Android CardView和Palette
- 非常详细GC学习笔记