一,面向对象
1.面向过程:分析解决问题所需要的步骤,用函数把这些步骤一一实现,使用的时候依次调用就可以了。
2. 面向对象:把构成问题的事务按照一定规则划分为多个独立的对象。
特性:1.封装性
2.继承性:主要描述类与类之间的关系
3.多态性:程序中允许出现的重名现象
3.对象和类
类(class)的定义:类的名字不能是Java中的关键字,即名字可以由字母,下划线,数字或美元符号组成,并且第一个字母不能是数字。
样板: class 类名{
所含变量定义;
}
eg: class Customer{
String name;
String sex;
int age;
}
类命名时,最好遵守下列习惯:
(1)类名的首字母使用大写字母,如Hello,People等。
(2)见名知意。当类名由几个“单词”复合而成时,每个单词的首写字母使用大写,如Beijing Time,HelloChina等。
对象:是根据类具体化的"实体“,占有存储空间,对象的创建也称为类的”实体化“或”初始化“,对象也被称为类的”实例“。
类名 对象名=new 类名()
(1)类名 对象名;
(2)new 类名();
4.认识封装
封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成
一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信息隐藏技术,在java中通过关键字private,
protected和public实现封装。什么是封装?封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使
用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安
全性。
封装的作用:① 对象的数据封装特性彻底消除了传统结构方法中数据与操作分离所带来的种种问题,提高了程序的可复用性和可维护性,降低
了程序员保持数据与操作内容的负担。
②对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序
复杂性、提高可控性的目的。
实现封装有两个步骤:①将不能暴露的成员隐藏起来,例如Customer类中的age,不能让其在类的外部被直接赋值。实现方法是将该成员定义为私有
的,在成员定义前加上修饰符private.
②用公共的方法来暴露对该隐藏成员的访问,可以给函数加上修饰符public,将该方法定义为公共的。
注意:1.私有成员只能在定义变量定义她的类的内部访问,在类的外部不能被访问。
2.一般情况下,可以将成员变量定义为private的,通过public函数(方法)对其进行访问 。例如要给一个成员赋值,可以使用setter函数,
如上面的setAge函数;要获得改变量的值,可以使用getter函数,如上面getAge函数。
3.private和public都是访问区别符。
5.认识构造函数
构造方法:没有返回类型,且不写viod,方法名与所在类的类名相同。可以重载,多数情况下访问权限定义为public,可以用来创建该类的对象。、
public 构造方法(【形式参数表列】){
//构造方法的方法体
}
构造函数:构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建
对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
构造函数的命名必须和类名完全相同。在java中普通函数可以和构造函数同名,但是必须带有返回值.
构造方法---后面有小括号,所以是方法;方法名与类名相同,特殊的方法。构造方法用于创建对象,必须由new来调用。
当对象创建时,构造方法就会被调用,对成员变量进行初始化。
几点说明:1)构造方法分无参数,带参数;
2)默认情况下,JVM提供一个无参数无方法体的构造方法;类中有构造方法的定义,JVM就不提供了。
3)构造方法可以重载;
4)构造方法之间可以调用。
定义和使用构造函数
构造函数也是一种函数,但是定义时必须遵守以下原则:1.函数名称必须和类的名称相同。2.不含返回类型。
定义了构造函数之后,在实例化对象时必须传入相应的参数列表,否则会报错。其使用方法如下:类名 对象名=new 类名(传给构造函数的参数列表);
注意:1.当一个类的对象被创建时,构造函数就会被自动调用,可以在这个函数中加入初始化工作的代码。在对象的生命周期中,构造函数只会被调用一次。
2.构造函数可以被重载,也就是说在一个类中定义多个构造函数。在实例化对象时,系统会根据参数的不同调用不同的构造函数。
3.在一个类中如果没有定义构造函数,系统会自动为这个类产生一个默认的构造函数,该函数没有参数,也不做任何事情。因此,只有在没有定义构
造函数时才可以通过“类名对象名=new 类名();“实例化对象。
思维导图里面部分内容参照了部分网友的思维导图,如有侵犯请联系删除