最近重新看了基础,稍微做了下笔记哈~看看就好。
1.类的基本概念: 对象是指具体的事物,而类是指某一类事物。
2.类的申明: 类申明由4部分组成,类修饰符,关键词class,申明父类,实现接口。
[public][abstract|final] class 类名 [extends 父类名] [implements 接口列表]
其中,public , abstract ,final是类修饰符,若都没有申明,java编译器将给出缺省值
3.接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义,而没有变量和方法的实现,一个类可是实现多个接口,以某种程度上实现“多继承” (java是单继承的)
4.变量分为局部变量和成员变量。在方法内部的是局部变量,在所有方法外的就是成员变量,若局部变量的类型和名称与某一成员变量一样,则在方法中屏蔽成员变量,若想找到该成员变量的值,可以使用this关键字。
5.成员变量申明形式:[可访问性修饰符] [static] [final] [transient] [volatile] 类型 变量名
可访问性修饰符:public protected package private
Static 静态变量
Final 常量,申明时就需要给出值
Transient 瞬时变量,瞬时变量不是对象的持久部分
Volatile 申明一个可能同时被并存运行的几个线程所控制和修改的变量,即这个变量不仅仅被当前程序所控制,而且在运行过程中可能存在其他未知程序的操作来影响和改变该变量的值。
6.方法的定义:返回类型 方法名(参数类型 1,参数类型 2),注意,不允许方法嵌套定义。
7.方法重载:指多个方法享有相同的名字,但是方法参数、类型、顺序是不同的
8.面向对象特性:封装、继承、多态。
封装:java中,对象就是对一组变量和相关方法的封装。通过对象的封装,实现了模块化和信息隐藏。我们给方法和变量设置严格的访问权限,使其只能通过我们给出的方法形式访问类中的成员变量,比如一个银行账户类,中有一个余额的成员变量,我们将其设置为private,在给出getMoney()的public方法,返回余额,这样用户只能通过我们给出的方式(getMoney())去访问数据,而不能改变数据。增强了安全性吧~
这里提一下访问权限,类中成员变量的定义有4中不同的权限:private,default,protected,public
Private:被定义为private的成员变量只能被这个类本身访问,其他无法访问。如果一个类的构造方法申明为private,则其他类不能生成该类的一个实例。------可用于单例模式的设计。
Default:缺省值。可以被这个类本身和同一个包中的所有类访问。
Protected:可以被这个类本身和他的子类(包括同一个包下的子类和不同包下的子类)访问。
Public:可以被所有的类访问。
限定词 | 同一个类 | 同一个包 | 不同包的子类 | 不同包的非子类 |
private | √ |
|
|
|
Default(缺省) | √ | √ |
|
|
protected | √ | √ | √ |
|
public | √ | √ | √ | √ |
9.继承,两个类之间的关系,被继承的类称为父类或超类,继承类称为子类。Java中所有的类都是直接或者间接继承java.lang.Object类得到的。子类不能继承父类中访问权限为private的成员变量和方法,子类可以重写父类的方法以及与父类同名的成员变量。Java是单继承。
子类重写了父类的方法,则在运行时,系统调用了子类的方法,父类方法被屏蔽。
10.super关键字的三种使用:1.调用父类被隐藏的成员变量如:super.money; 2.调用父类中重写得方法,如super.getMoney();3.调用父类的构造方法。由于子类不能继承父类的构造方法,当在子类中要使用父类的构造方法时,可以super表示,并且super必须是子类构造方法中的第一条语句。
11.this关键字,表示当前的对象。
12.多态性:多态性体现在2个方面:有方法重载实现的静态多态性(编译时多态)和方法重写实现的动态多态性(运行时多态)。1.编译时多态:编译器会根据参数的不同来静态调用相应方法。2.运行时多态,由于子类继承了父类所有的属性(除私有外),所有子类对象可以作为父类对象使用。程序中凡是使用父类对象的地方都可以用子类对象来代替。一个对象通过引用子类的实例来调用子类方法。
13.final关键字说明:1.final,修饰变量。final修饰的变量就是常量了,这样做的目的就是防止内容被修改,在定义时,就要给出初始值。定义过后不能改修改! 2.final 修饰成员方法,该方法不能被子类重写。 3.final修饰类 不能被继承。
14.static关键字说明:java语言中,成员变量和成员方法可以进一步分为2种,类成员和实例成员。用关键字static修饰的变量或方法称就是累变量和累方法,没用static修饰的就是实例变量和实例方法。 类变量多次使用只占一个空间,实例变量多次使用占据多个可空间。如果使用了static申明方法,调用该方法时,不用事先实例化其所在的类。
15.实例方法和类方法(带static)区别:实例方法可以对当前对象的实例变量进行操作,也可以对类变量进行操作。实例方法由实例对象调用。但是类方法不能访问实例变量,只能访问类变量。类方法由类名直接直接调用,也可以由实例对象调用。类方法中不能使用this或super关键字。
16.Abstract关键字(抽象类),专门设计用来让子类继承的类。就是说是对某类事物的本质的抽象概念。比如不同的几何图形,正方形,三角形都是属于几何图形,这里的几何图形就是抽象概念。抽象类特征:1.抽象类中可以包含普通方法,也可以包含抽象方法。也可以只有普通方法而没有抽象方法。2.抽象类中的抽象方法是只有方法声明,而没有代码实现的空方法。
17.接口的定义:接口是抽象类的一种,只包含常量和方法的定义,而没有变量和具体方法的实现,且其方法都是抽象方法,但是不需要添加abstract关键字。具体用处体现在一下几个方面:1通过接口实现不相关类的相同行为,而无需考虑这些类之间的关系。2.通过接口指明多个类需要实现的方法。3.通过接口了解对象的交互界面,而无需了解对象所对应的类。一个类可以实现多个接口,用逗号隔开。