配色: 字号:
《Java面向对象程序设计》02 面向对象的概念写字字帖
2023-05-25 | 阅:  转:  |  分享 
  
目标了解 :面向对象的三大基本特点理解 :类和对象的概念掌握 :Java类的定义,类的属性和方法,类的构造方法以及对象的创建与引用概述面向对
象编程的三大基本特点是:封装继承多态 本章主要讲解面向对象编程的重要概念:建立类的概念理解程序中对象和现实生活中对象的概念建立起程
序类实例(对象)的概念使用类实例(对象)调用方法和属性 类的定义及现实世界的模型面向对象的开发方法是把软件系统看成各个对象的集合类
(class)是将数据及处理数据的方法结合在一起的模型类用于描述对象对象是归属于某个类的具体实例 类的定义及现实世界的模型现实世界
中类和对象的模型 类对象1对象2对象3类的定义及现实世界的模型对象可以是现实事物人、天空、月亮、太阳、桌子也可以是抽象事物会议、合
约对象必须能够体现自身的一部分特性 牌照号码制造商年份启动加速停车 汽车会议内容开会地点开会时间结束时间与会人员会议学号年级名字通
信地址上学参加活动下课 学生类的定义及现实世界的模型对象的属性和行为属性体现了对象的某种特征行为即对象所能进行的操作属性行为类的定
义及现实世界的模型对象具有封装性封装(encapsulation)是对象最重要的特性如何完成各项操作的过程被对象隐藏起来了类的定义
及现实世界的模型对象都属于某个类每个对象都是某个类的实例 同一个类所有实例具有相同的属性和行为,但属性值各不相同错误:学生类中未定
义年级属性类(class)是描述了一组具有相同属性和行为的对象 类的定义及现实世界的模型类图(class diagram)是说明类
的常用方法类图是统一建模语言UML(Unified Modeling Language)的一部分,也是对类进行说明的标准表示法 类
名属性方法类的属性与方法类也是一种数据类型每个类都描述了一组特定的数据类这种数据类型统称为引用类型 public class Ca
r { //汽车类 //成员变量(属性) String regNo; //牌照号码 Strin
g make; //制造商 int year; //年份 int speed;
//车速 //构造方法(函数) public Car() {} //无参构造方法 p
ublic Car(String regNo, String make, int year, int initSpeed) {}
//带有参数的构造方法 //Car类的操作(方法) void start(){} //启动 void
speedUp(int increase) {}//加速 void slowDown(int increase){}//
减速 void stop(){} //停车 }对象的实例化构造方法是用来构造类实例(对象)的方法 使用关键字
new来调用构造方法,从而创建一个类的实例 //调用无参数构造方法创建一个类的实例Car car = new Car();//调用
带四个参数的构造方法创建一个类的实例Car theCar=new Car("VD-12345", "volvo", 1998, 0
);对象的实例化通过类的实例(对象)调用方法以实现对象的操作 //调用无参数方法 theCarOfGreta.start();
//调用带参数的方法 theCarOfGreta.speedUp(10);对象的实例化对象变量存放的是引用引用就是一个所指向的对象
的地址可以通过赋值改变该引用 Car theCarOfGreta = new Car(“VD-12345”, “volvo”, 1
998, 0);Car theCarOfAnne = new Car(“VD-12346”, “Benz”, 1998, 0);
theCarOfGreta = theCarOfAnne; 设计类类是Java中的一种重要的复合数据类型,是组成Java程序的基本
要素。它封装了同一类对象的属性和方法,是这一类对象的原型 设计类是面向对象的核心设计类一个有关装修房子的问题。在该问题中涉及以下几
种对象: 地板,墙,油漆,墙纸,地板材料等 需要了解的信息有: 地板和墙的长,宽需要计算的数据有: 地板和
墙的面积(用于决定需要多少墙纸,油漆和地板材料)设计类墙和地板具有相同的属性(长和宽),可以将这些抽象成一个类——Surface类
Surface类的类图私有属性 (实例变量)类名公有方法 (实例方法)编写实现类根据类图,Surface类实现如下: class
Surface { private String name; private double length; pri
vate double width; public Surface(String initName, double initLe
ngth, double initWidth) { name = initName; length = initLen
gth; width = initWidth; } public String getName() { return n
ame; } public double getLength() { return length; } public doub
le getWidth() { return width; } public double getArea() { ret
urn width length; }}编写实现类使用Surface类 class FloorCalculations {
public static void main(String[] args) { / 步骤1:创建Surface
类的一个对象/ Surface aFloor = new Surface("Mary''s floor", 4.8, 2.3
); /步骤2:提取对象的数据,并计算对象的面积/ String name = aFloor.getName();
double width = aFloor.getWidth(); double length = aFloor.g
etLength(); double area = aFloor.getArea(); /步骤3:将获得的结果显示在
屏幕上/ System.out.println("Information about the floor with the
name: " + name ); System.out.println("Width: " + width); S
ystem.out.println("Length: " + length); System.out.println("Ar
ea: " + area); }}访问修饰符private和publicpublic表示对象外的程序能够访问该方法或属性priv
ate关键字表示对象外的程序不能访问该方法或属性 实例变量使用private修饰符,而在方法上使用public修饰符,让类外的程序
只有通过方法才能访问实例变量,这样可以提高数据的安全性。构造方法构造方法主要用来初始化类中的成员变量方法名必须与类名相同构造方法没
有返回值类型 public Surface(String initName, double initLength, double
initWidth) { name = initName ; length = initLength ; wid
th = initWidth ;}构造方法在创建一个类对象时,new运算符调用该类的构造方法以执行初始化工作 Surface a
Floor = new Surface("Mary''s floor", 4.8, 2.3);对象:aFloor构造方法在Java中
要求每个类至少有一个构造方法如果没有为类声明构造方法,则编译器会创建一个没有参数的默认构造方法 //默认构造方法public Su
rface() { } 注意: 当我们为类声明了任何一个构造方法,则Java将不会为该类创建默认的构造方法 垃圾回收在一些传统的编
程语言(如C语言)中,回收内存的任务是由程序本身负责的 程序员可能因为粗心大意,忘记及时释放无用变量的内存,从而影响程序的健壮性程
序员有可能错误地释放核心类库所占用的内存,导致系统崩溃 垃圾回收在Java语言中,内存回收的任务由Java虚拟机来担当 在程序的运
行时环境中,Java虚拟机提供了一个系统级的垃圾回收器线程,它负责自动回收那些无用对象所占用的内存,这种内存回收的过程被称为垃圾回收(Garbage Collection) 总结类是对象的原型,对象是类的具体实例设计类是面向对象程序设计的核心类的成员主要有:属性,方法,构造方法使用new关键字创建类的对象,在创建对象时将调用构造方法 对象变量存放的是引用,引用实际上是实例对象在内存中的地址 垃圾回收线程用于回收内存中不再使用的对象
献花(0)
+1
(本文系大高老师首藏)