一、Java中的关键字
(一)this关键字
1.在类的方法定义中使用的this关键字代表使用该方法的对象的引用2.当必须指出当前使用方法的对象是谁时要使用this关键字
3.有时使用this可以处理方法中成员变量和参数重名的情况
4.this可以看做是一个变量,他的值是当前对象的引用。(就近声明原则—确定不了声明的同名的变量是哪个变量的时候,找离他最近的声明)
5.this后面加括号代表他调用了自己类的另外一个构造方法
(二)static关键字
1.在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份。
2.用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员(静态方法不再是针对于某个对象的调用,所以不能访问非静态成员)
3.可以通过对象引用或类名(不需要实例化)访问静态成员
(静态变量,字符串常量放在data seg(数据区)
动态方法针对某一个对象来调用
静态方法没有对象也可以调用)
(三)final关键字
1.final的变量的值不能够被改变(成员变量。局部变量)2.final方法不能够被重写
3.final类不能够被继承
(四)super关键字
java类中使用super来引用基类的成分(引用父类方法中的所有成分,然后还可以再添加一些新的应用)
二、Java中的封装、重载、重写、继承、多态
(一)abstract(抽象)
1.用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法。
2.含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
3.抽象类不能被实例化
4.抽象方法只需声明,而不需实现。
(二)overload(重载)
1.方法重载(overload)指一个类中可以定义有相同的名字,相同返回值,但参数不同(个数或者类型)的多个方法。
2.调用时,会根据不同的参数表选择对应的方法。
3.构造方法也可以重载
(三)overwrite/override(重写)
1.在子类中可以根据需要对从基类中继承来的方法进行重写,重写后可以对方法进行修改
2.重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型
3.重写方法不能使用比被重写方法更严格的访问权限(比如如果父类方法的访问权限是private,那么子类重写的方法就不可以是default)
(四)extends(继承)
java中使用extends关键字实现类的继承机制。语法
通过继承,子类自动拥有了superclass(基类)的所有成员(成员变量和方法);Java只支持单继承,不允许多继承(一个子类只能有一个基类,一个基类可以派生出多个子类)
继承中的构造方法:
1.子类的构造的过程中必须调用其基类的构造方法
2.子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法
a、可以使用this(argument_list)调用本类的另外的构造方法
b、如果调用super,必须写在子类构造方法的第一行
3.如果子类的构造方法中没有显示地调用基类构造方法,则系统默认调用无参数的构造方法
4.如果子类构造方法中既没有显式的调用基类中的构造方法,而基类中又没有无参的构造方法,则编译会出错
(五)多态
1.动态绑定(多态或延迟绑定):指“在执行期间”(而非编译期间)判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。(使得程序的可扩展性达到最好)
调用方法时,只要这个方法重写了,实际当中调用哪个,要看实际中new的对象
2.应用的条件:要有继承、重写、父类引用指向子类对象
三、Java中的语句与访问控制
为了便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引用包(package)机制,提供类的多重类命名空间。如果想将一个类放入包中,Package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包,若缺省该语句,则指定为无名包,格式:
Java编译器把包对应于文件系统的目录管理,package语句中,用‘.’来指明包(目录)的层次
1.如果包里面第一句话写package,package里面可以跟很多层包,但是有一点需要注意,所编译出来的Class文件,必须位于正确的目录(和包的层次要完全的一致)下面。
2.如果在另外一个类里面调用包里面的类,必须使用该类的全名,java编译器才会找到该类
3.除了使用全名路径的引用外还可以使用import语句在文件的开头引入要使用到的类,可以是单个类或者所有包中的类
4.访问同一个包中的类不需要引入
5.class文件的最上层包的父目录必须位于环境变量classpath下
6.执行一个类需要写全包名
生成自己的java包方法:在命令提示符要打包文件的上一层目录下:
(XX代表打包的名称,*.*至该文件中的所有类)
(二)访问控制
Java权限修饰符public protected private置于类的成员定义前,用来限定其他对象对该成员的访问权限。
对于class的权限修饰只可以用public(可以在任意地方被访问)和default(只可以被同一个包内部的类访问)。
三、Java中的类、对象类型与接口
(一)Object类1.object类是所有java类的根基类
2.如果在类的声明中为使用extends关键字指明其基类,则默认其基类为object类
toString方法
Object类中定义有public String toString()方法,其返回值是String类型,描述当前对象的有关信息。
在进行String与其他类型数据的连接操作时,如(System.out.prin tln("info"+person)),将自动调用该该对象类的toString()方法
可以根据需要在用户自定义类型中重写toString()方法。
equals方法:
Object类中定义有:
(二)对象类型
1.一个基类的引用类型变量可以“指向”其子类的对象
2.一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)
3.可以使用引用变量 instanceof 类名 来判断该引用型变量所“指向”的对象是否属于该类或该类的子类(instanceof 它的作用是判断其左边对象是否为其右边类的实例,返回boolean类型的数据。)
4.子类的对象可以当做基类的对象来使用称向上转型(upcasting),反之称为向下转型(downcasting)
(三)接口
定义:接口是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
原则:
1.多个无关的类可以实现同一个接口
2.一个类可以实现多个无关的接口
3.与继承关系类似,接口与实现类之间存在多态性
4.定义Java类的语法格式:
特性:
1.接口可以多重实现implements
2.接口中声明的属性默认为public static final的;也只能是public static final的;
3.接口中只能定义抽象方法,而且这些方法默认为public的,也只能是public的。
4.接口可以继承其它的接口,并添加新的属性和抽象方法。