<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);}}


注意:1.上面两个例子一共有两个类:Student类与带有Public访问修饰符的ClassPractice03类,前者访问修饰符为默认的default(访问修饰符会在后面的文章中介绍),后者作为测试类,有一个main方法(在Java中,main方法为程序的入口)。
2. ClassPractice03的源文件名为ClassPractice03.java,这是因为文件名必须与public类的名字相匹配。在一个源文件中,只能有一个公有类,但可以有任意数目的非公有类。

0 0