1,面向对象的概述
对象为事物存在的实体
对象通常以两个部分组成,动态部分和静态部分
这些部分统统称为属性
探讨对象的属性来观察,了解对象
2,类
将属性和行为封装起来,构成一个类
类的实质就是封装的对象属性和行为的载体,而对象则是类抽象出来的实例
3,封装
吧对象的属性和行为封装起来,其载体就是类
类通常隐藏其实现的细节
4,继承
类与类之间具同样具有关系,这种关系被称为关联。关联主要描述两个类之间的一般二元关系。
当处理一个问题时,可以将一些有用的类保留下来,当遇到同样的问题时拿来复用,可以减少使用过程中出现的错误的概率。
继承主要利用对象之间的共有属性。
5,多态
将父类现象应用于子类的特征就是多态。
6,成员变量
在Java中对象属性称为成员变量,成员变量为任意类型
7,成员方法
一个成员方法可以有参数,这个参数可以是对象,也可以是基本数据类型的变量,同时成员方法有返回值和不返回任何值的选择,如果方法需要返回值,可以在方法体中使用return关键字,使用这个关键字后,方法的执行将被终止。
8,权限修饰符
Java的权限修饰符主要包括private,public和protected
访问包位置 | 类修饰符 | ||
private | protected | public | |
本类 | 可见 | 可见 | 可见 |
本包其他类或子类 | 不可见 | 可见 | 可见 |
其他包的类或子类 | 不可见 | 不可见 | 可见 |
9,this关键字
this关键字表示本类当前的对象,当前对象不是某个new出来的实体对象,而是当前真在编辑的类。this关键字只能在本类中使用。
其实,this除了可以调用成员变量和成员方法,还可以作为方法的返回值,如:
public Book getBook(){
return this;
}
10,类的构造方法
在类中,除成员方法外,还存在一种特殊类型的方法,那就是构造方法,构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的,当类实例化一个对象时,类都会自动调用构造方法。
构造方法的特点如下:
构造方法没有返回值
构造方法的名称要与本类的名称相同
在类中除了成员方法外还有一个特殊类型的方法,那就是构造方法。
11,静态变量和静态方法
在介绍静态变量和静态方法前,首先需要介绍static关键字,因为由static修饰的变量和方法称为静态变量和静态方法。
被声明为static的变量和方法被称为静态成员,静态成员属于类所有,区别于个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员
静态成员与静态方法的作用通常为了提供共享数据或方法,尽管使用这种方式调用静态成员比较方便,但静态成员同样遵循public,private和protected修饰符的约束
如果在执行类中,希望先执行类的初始化操作,可以使用static定义一个静态区域,这块区域也称为静态代码块,当类文件被执行时,会首先执行static块中的程序,并且只会执行一次
12,类的主方法
主方法是类的入口点,它定义了程序从何处开始,主方法提供对程序流向的控制,java编译器通过主方法来执行程
主方法具有以下特性:
主方法是静态的,所以如果要直接在主方法中调用其他方法,则该方法必须也是静态的
主方法没有返回值
主方法的形参为数组,其中,args[0]~args[n]分别代表程序的第一个参数到第n个参数,可以使用args.length获取参数的个数
1,在eclipse中的MianDemo.java文件上单击鼠标右键,在弹出的快捷菜单中选择泽“运行方式”/“运行配置”(英文版为Run As/Run Configrations),弹出“运行配置”(Run Configrations)对话框
2,在“运行配置”对话框中选择“自变量”(Arguments)选项卡,在“项目”(Progran argumrnts)文本框输入相对应的参数,每个参数间按enter键隔开
3,单击“运行”按钮,查看控制台运行结果,结果如上:
如果不按以上操作,直接运行源码,则不会输出如何结果。
13,对象
(1)对象的创建
在前面中讲解过对象,对象可以认为是在一类事物中抽象某一个特例,可以通过这个特例来处理这类事物出现的问题,在java语言中,通过new操作符来创建对象,在讲解构造方法时介绍过,每实例化一个对象就会自动调用一次构造方法,实质上这个过程就是创建对象的过程。准确的说,可以在java语言中使用new操作符调用构造方法创建对象
test构造方法的参数test对象被创建出来时,就是一个对象的引用,这个引用在内存中为对象分配了存储空间,可以在构造方法中初始化成员变量,当创建对象时,自动调用构造方法。也就是说,在 Java语言中,初始化与创建是被捆绑在一起的。每个对象都是相互独立的,在内存中占据独立的内存地址,并且每个对象都具有自己的生命周期,当一个对象的生命周期结束时,对象就变成垃圾,由 Java 虚拟机自带的垃圾回收机制处理,不能再被使用(对于垃圾回收机制的知识)。
2)访问对象的属性和行为
用户使用new操作符创建一个对象之后,可以使用“对象.类成员”来获取对象的属性和行为,前面已提到过,对象的属性和行为在类中是通过类的成员变量和成员方法的形式来表示的,所以当对象获取类成员时,也相应地获取了对象的属性和行为。
3)对象的引用
在java中,尽管一切都可以看作对象,但真正的操作标识符实质上是一个引用,那么引用在java中是如何体现的呢
实际上真正的对象是“new people()”这段代码,为了方便开发者保存,,调用对象,于是创建了一个people类型,名叫tom的引用变量。既然tom是new people的“代理人”,那么“new people()”对象能做的事情,tom也能做
(4)对象的销毁
每个对象都有生命周期,当对象的生命周期结束时,分配给该对象的内存地址需要被回收。在其他语言中,需要用户手动回收废弃的对象。Java 拥有一套完整的垃圾回收机制,用户不必担心废弃的对象占用内存,垃圾回收器会自动回收无用却占用内存的资源。
在学习垃圾回收机制之前,读者首先需要了解何种对象会被 Java 虚拟机视为“垃圾”。主要包括以下两种情况:
1.对象引用超过其作用范围,这个对象将被视为垃圾
2.将对象赋值为null,
但垃圾系统只能回收new操作符创建的对象,某些对象不是通过new操作符在内存中获取存储空间的,这种对象无法被垃圾回收机制识别,在java中,提供了finalize()方法,这个方法是object类的方法,它被声明为protected,用户可以在自已的类中定义这个方法,如果用户在类中定义了finalize()方法,在垃圾回收会首先调用该方法,在下一次垃圾回收动作发生时,才真正回收被对象占用的内存