2.1类与对象
1.类的定义
类是一种复杂的数据类型
对象时这种数据类型的实例
类是对象共同属性和行为 的抽象集合,即模板
2.类的声明
类定义了一种新的数据类型,是具有相同特征和共同行为的一组对象的集合
语法:
【访问符】【修饰符】class类名{
属性
方法
}
2.2方法
1.方法的定义
一句或者多句代码完成一个特定的功能,为这个功能起一个名字,将来通过名称的调用具体功能,而不用再写具体的代码内容。
2.方法的参数传递机制
(1)Java程序总是从main()方法开始执行。
(2)值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。
(3)引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。
3.构造方法
(1)在创建对象的时候,对象成员可以由构造函数方法进行初始化。
new对象时,都是用构造方法进行实例化的;
例如;Test test = new Test("a");
Test("a");其中这个就是构造函数,“a”为构造方法的形参;
(2)构造方法的方法名必须与类名一样。
(3)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
(4)构造方法不能作用是完成对象的初始化工作,他能够把定义对象时的参数传递给对象的域。
构造方法不能由编程人员调用,而要系统调用。
构造方法可以重载,以参数的个数,类型,或排序顺序区分。
4.方法的重载
在java程序中,如果同一个类中包含了两个或两个以上的方法的方法各不相同,但参数列表不同,则被称为方法重载。
三个原则:
在同一个类中
方法名相同
参数列表不同
2.3封装和访问控制
1.包
Java引入包的机制,提供了类的多层命名空间,解决类的命名冲突、类文件管理等问题。
借助包可以将自己定义的类与其他类库中的类分开管理。
语法:
Package 包名
注意:
1.package语句必须作为java源文件的第一条非注释性的语句;
2.一个java源文件只能指定一个包;
3.定义包之后,java源文件中可以定义多个类,这些类将全部位于该包下;
4.多个java源文件可以定义相同的包;
导入包 import 包名
2.访问控制符
(1)封装是面向对象的特性之一
(2)封装实际上把该隐藏的隐藏,该公开的公开,这些都需要通过java访问控制符来现。
private(当前类访问权限):如果类里的一个成员(包括成员变量、方法和构造器等)使用private访问控制符来修饰,则这个成员只能在当前类的内部被访问。很显然,这个访问控制符用于修饰成员变量最合适,使用它来修饰成员变量就可以把成员变量隐藏在该类的内部。
default(包(package)访问权限):如果类里的一个成员(包括成员变量、方法和构造器等)或者一个外部类不使用任何访问控制修饰,就称它为包访问权限的,default访问控制的成员或外部类可以被相同包下的其他类访问。
protected(子类访问权限):如果一个成员(包括成员变量、方法和构造器等)使用protected访问控制符修饰,那么这个成员既可以被同一个包中的其他类访问,也可以被不同包中的子类访问。在通常情况下,如果使用protected来修饰一个方法,通常是希望其子类来重写这个方法。
public(公共访问权限):这是一个最宽松的访问控制级别,如果一个成员(包括成员变量、方法和构造器等)或者一个外部类使用public访问控制符修饰,那么这个成员或外部类就可以被所有类访问,不管访问类和被访问类是否处于同一个包中,是否具有父子继承关系。
2.4静态成员
Java中可以使用static关键字修饰类的成员变量和方法,这些被static关键字修饰的成员也成为静态成员。
与类相关的静态成员称为类变量或类方法。