程序设计简史
过程式程序设计
只是一系列为了实现需求功能的特定步骤的命令
结构化程序设计
是进行以模块功能和处理过程设计为主的详细设计的基本原则
面向对象程序设计
实现总体的数据抽象,具有封装,继承,多态等功能
类包含的两个重要特点
属性特征
动作行为
类与对象
Everything is Object: 万事万物皆对象
面向对象的编程(OOP)思想力图使对计算机语言中对事物的描述与现实世界中该事物的本来面目尽可能的一致
Class/Object:
类(class)和对象(object)是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)
从类到具体产生的对象过程,叫实例化
从对象到抽象设计类的过程,叫抽象化
构造器(Constructor)的声明
构造器的声明语法
<modifier> <class_name>([<argument_list>] ){
[<statements>]
}
构造器名称必须和类名一致
一个类可以有多个构造器,但这些构造器的参数列表必须不同
对象的创建和使用
在Java中,使用new 关键字来创建一个对象(实例化一个类),new 后面跟上一个构造器
MyClass object = new MyClass();
每个类都至少有一个构造器,如果没有定义构造器,则系统将自动提供一个默认的不带任何参数的构造器,如果类没有定义构造器,可以用这个默认的构造器来生成一个对象
使用" . "操作符来访问对象的成员,包括对象方法和对象
<object>.<member>
信息的隐藏
隐藏:指的是对象的一种保护机制,使得它的属性和方法不被外部的程序直接访问
使用者对类内部定义的数据(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题
信息的封装
封装指的是将对象的状态信息(属性)和行为(方法)捆绑为一个逻辑单元的机制
Java中通过将数据封装、声明为私有的(private),在提供一个或多个公开的(public)方法实现对该属性的操作,以实现下述目的:
隐藏一个类的实现细节;
防止对防止对封装数据的未经授权的访问。使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合法操作;
有利于保证数据的完整性;
便于修改,增强代码的可维护性;
Java源文件的基本结构
源文件的基本语法
[<package_declaration>]
[<import_declarations>]
<class_declaration>
package语句
package <top_pkg_name> [ .<sub_pkg_name>]
import语句
import <pkg_name>[.<sub_pkg_name>].<class_name>;
import <pkg_name>[.<sub_pkg_name>].*;
默认情况下,系统会自动引入java.lang 包中的所有类
常用的包
java.lang 包含一些Java语言的核心类,如:String、Math、Integer、System和Thread功能
java.awt 包含了构成抽象窗口工具类(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)
java.applet 包含applet运行所需的一些类
java.net 包含执行与网络相关的操作的类
java.io 包含能够提供多种输入/输出功能的类
java.util 包含一些使用的工具类,如定义系统特性、使用与日期日历先关的函数
面向对象编程的术语
类(class)
对象(object)也称:实例(instance)
属性(attribute)也称:成员变量、实例变量(instance variable)
方法(method)
构造器(constructor)
包(package)
深入类和对象
类和对象的区别
方法的优点
使程序变得更简洁短而清晰
有利于程序维护
可以提高程序开发的效率
提高了代码的重用性
面向对象(OOP)的优点
便于程序模拟现实世界中的实体
用“类”表示实体的特性和行为
隐藏细节
对象的行为和属性被封装在类中,外界通过调用类的方法来获得,不需关注内部细节如何实现
可重用
可以通过类的模板,创建多个类的对象
数据类型总结
基本数据类型:
int float
double byte
char short
long boolean
引用数据类型:
String
使用class定义的类型