【Java学习笔记】2:抽象和封装-简单类的实现

抽象:从特定的实例中抽取它们共同的性质特征,以形成一般化概念模型的过程。这种一般化的概念模型就是类。类是对客观实体的一种抽象结果,他体现了一类事物本质的特征与行为。

 

封装:封装的结果是形成类,封装是实现抽象的必经之路。所谓封装就是把对象的全部属性和全部功能结合在一起,包装成一个不可分割的独立单元(对象),并尽可能隐蔽该单元的内部细节。对象就是对一组域和相关方法的封装,其中域表明了对象的状态,方法表明了对象具有的行为。

 

封装的实现机制:①设置域和成员方法的访问权限②提供一个供其它类引用的统一方法接口③其它对象不能直接修改对象所拥有的域和方法。

 

Java类库:

1.java.lang包:java语言的核心类库,包含了运行java程序必不可少的系统类。每个java程序运行时系统狗都会自动地加入它,所以这个包的加载是缺省的。

2.java.io包:标准输入/输出类库,凡是需要完成与操作系统有关的底层的输入输出操作的程序,都要用到它。

3.java.awt包:用来构建图形用户界面(GUI)的类库,开发人员可以很方便地编写出美观、方便、标准化的应用程序界面。

4.java.applet包:用来实现运行于Internet浏览器中的Applet的工具类库,它仅包含少量几个接口和一个非常有用的类:Applet。

5.java.awt.event包:使程序可以用不同的方式来处理不同类型的事件,并使每个图形界面的元素可以拥有处理它上面事件的能力。

6.java.sql包:实现JDBC的类库,利用这个包可以使程序具有访问不同种类的数据库的功能。

7.java.util包:它包含了java语言中的一些低级的实用工具,如Date类、Vector类、Stack类等。

使用系统类有3种方式:①继承系统类②创建系统类的对象③直接使用系统类

 

类声明的完整格式:

[public] [abstract|final] class<类名> [extends<父类名>] [implements<接口列表>]

其中
①class为定义类的关键字

②修饰符public,abstract,final说明了类的特性

public:公共类(可以被其他类访问),当public关键字省略时,该类为默认的包访问属性,此时该类智能被同一个包中的其他类使用。

abstract:抽象类,即只能被继承,不能被实例化。

final:最终类,即不能被继承,不能有子类,不能通过扩展的办法来创建新类(?),abstract和final不能同时出现。

③类名为类的名称,是一个合法标识符,一般用大写字符开头。

④extends关键字用来声明类的继承。一个子类可以从它的父类中继承域和方法,extends只能实现单一继承。

⑤implements关键字用来实现接口。接口列表为所定义的类要实现的多个接口的一个序列,各接口名之间以逗号分隔,其形式为:implements<接口名1>,<接口名2>,...

接口是一种特殊的抽象类,这种抽象类中只包含常量的定义和抽象方法说明,而没有变量和方法的实现。接口是java实现多重继承的一种机制。

 

类体定义的一般格式为:

{

...//域的定义

...//构造函数的定义

...//成员方法的定义

}

其中:

①域定义了类的状态与属性,是类静态特征的体现。域要在类的内部说明,其作用域是整个类,同一类中所有方法都可以对其访问。

②构造函数是具有与类同名的一种特殊函数,用来创建类的对象及对域进行初始化。构造函数为可选项,当省略时Java系统会按缺省方式定义空白的构造函数。

③成员方法又称为功能接口,简称为方法,特别是公有方法是类对象与外界的接口,描述了类对象的行为方式,反映了对象的行为特征,特别是对域进行操作的特征。


*一个最基本的简单类的例子

package day2;
public class Person {
	String name;
	int age;
	String address;
	float weight;
	char sex;
	public static void main(String[] args) {
		Person p1=new Person();
		Person p2=new Person();
		p1.name="lzh";
		p1.age=20;
		p1.address="中国";
		p1.sex='m';
		p1.weight=135;
		p2.name="x";
		p2.age=19;
		p2.address="中国";
		p2.weight=110;
		p2.sex='w';
		System.out.println("我是"+p1.name+",性别:"+p1.sex+
		",年龄:"+p1.age+",体重"+p1.weight+",住在"+p1.address);
		System.out.println("我是"+p2.name+",性别:"+p2.sex+
		",年龄:"+p2.age+",体重"+p2.weight+",住在"+p2.address);
	}
}

参考书籍:《Java程序设计》曹大有等,亦是笔记来源。

今天就到这里了,Java中基本的类就是这样实现,留下了一个问题:什么叫“不能通过扩展的办法来创建新类”呢?


你可能感兴趣的:(Java)