Java基础复习(二)

面向对象(上)

 

一:面向对象

  是相对于面向过程而言的一种编程思想,面向过程关注的是事物实现的过程,关注于过程,面向对象是基于对象而言的,重视的是结果。

面向对象思想特点

  A:更符合人们思想特点

  B:让复杂的事情简单化

  C:让角色发生转换,让程序员从执行者变成了发令者

类与对象

类中成员:

成员变量成员方法 局部变量

创建对象格式

面向对象特点

  封装 继承 多态

  类名 变量名 =new 类名();

调用方法

  对象变量名.类中成员

 

 

构造方法

构造方法满足的三个条件:

1方法名与类名一致

2 在方法名前面没有返回值类型

3 方法体中不能用return返回一个值

格式

类名(){}

 

如果一个类中,没有手动给出一个构造方法,系统会默认给出一个无参构造方法,如果手动给了构造方法,系统将不再给出无参构造方法

一个类中可以定义多个构造方法,只要参数列表不同就可以

 

 

 this关键字

用于解决一个类中局部变量和成员变量重复的问题,Java提供了一个关键字,用于调用其他成员

可以调用成员变量,成员方法,本类其他的构造函数

 

调用构造方法时需要注意的问题

1只能在构造方法中,调用构造方法,不能在成员方法中调用构造方法

2在构造方法中调用其他构造方法,this关键字要放在第一行

3不能两个构造方法相互调用

 

 

static关键字(静态)

静态

静态的特点

A 随着类的加载而加载

B 优先于对象存在

C 被所有对象共享

D 比非静态成员多了一种调用方式,类名调用

什么时候用static

        当类中成员需要被共享时候用static 不需要共享的时候就不用static

 共性用static 修饰,特性用不static修饰

静态的访问

 非静态方法

  可以访问非静态成员变量,也可以访问静态成员变量

  可以访问非静态成员方法,也可以访问静态成员方法

 静态方法

 只能访问静态成员变量,只能访问静态成员方法

 

 内部类

 定义在一个类的内部的类叫做内部类

内部类分为成员内部类,静态内部类,方法内部类

 

内部类可以直接访问外部类,而外部类想访问内部类时必须要创建内部内对象才能使用

格式

外部类名.内部类名变量名 =  new 外部类名().new 内部类名();

静态内部类

1在静态内部类中,只能访问外部类的静态成员

2在静态内部类中可以定义静态的成员,而在非静态的内部类中不允许定义静态的成员

方法内部类

 方法内部类是指在成员方法中定义的类,它只能在当前方法中被使用,

 

七封装

把对象的属性和行为隐藏起来,对方提供公共访问方式

 

好处

  将变化隔离,便于使用,提高重用性,提高安全性


面向对象(下)

继承

概念

把多个类中相同的属性和行为抽取到一个新的类中,其他类用关键字extends与这个类连接,

那一个类就叫做父类,其他类就叫做子类

注意问题

1 在java中,类只支持单继承,不允许多重继承,也就是说一个雷只能有一个直接父类

2 可以多个类继承同一个父类

3 在java中,多层继承是可以的

 

重写

在java中,子类继承父类后可以直接使用父类中的方法,如果子类要对父类的方法进行修改,就是对父类方法的重写

Super关键字

Java提供的一个关键字,用于访问父类的成员。

Super.成员变量

Super.成员方法();

Super(参数1,参数2)调用父类构造方法

 

注意问题

 子类构造方法一定会默认调用父类的无参构造方法,如果父类没有构造方法,需要子类指定的带参构造方法

子类构造方法第一个行默认有个super(),并且只能放在第一行

 

final关键字

最终的意思

1被final修饰的类不可以被继承

2 被final修饰的方法不可以被重写

3 被final修饰的变量是常量只能赋值一次

 

抽象类

当定义一个类的时候,往往要定义一些方法来描述事物,但有时候这些方法的实现方式是不能确定的,java根据这种情况允许定义方法时不写方法体,不包含方法体的方法是抽象方法,抽象方法必须使用abstract关键字来修饰。

注意

包含抽象方法的类必须定义为抽象类,但抽象类不一定包含抽象方法

抽象方法是没有方法体的,不可以被调用。如果想调用抽象类中定义的方法,则需要创建一个子类,在子类中将抽象类中的抽象方法进行实现。

接口

如果一个抽象类中所有方法都是抽象的,那么可以用另一种方式来定义,即接口,需要用interface来定义

接口中的方法默认使用’public abstract”来修饰

接口中变量默认用public static final来修饰 即全局常量

实现接口用关键字 implements

接口的特点

1 接口中方法都是抽象的不能实例化

2 当一个类实现接口=时候,如果这个类是抽象的只需要继承部分方法就可以了,如果这个类不是抽象的则需要重写所有方法

3 一个类用Implements实现接口,可以同时实现多个接口,接口之间用,隔开

4 一个类在继承的同时可以实现接口

接口中成员特点

A 成员变量

  只有常量,并且是静态常量

B 构造方法

  接口中没有构造方法

C 成员方法

  接口中方法都是抽象的

 

抽象和接口的区别

A成员区别

  抽象类

         成员变量 可以是变量可以是常量

构造函数  有构造函数

 成员方法 可以是抽象方法也可以不是抽象方法

接口

 成员变量 只有常量

 构造函数 没有

 成员方法 全是抽象的

B类和接口关系区别

类类之间是继承关系

类接口之间是实现关系

接口与接口之间是继承关系

 

C设计理念区别

抽象类的继承体现的是is a的关系 接口的实现体现的是like a的关系

接口一般定义的是整个类的扩展功能

 

多态

概念

  对象在不同时刻表现的不同状态

多态的前提

A类与类之间是继承关系

B 要有方法的重现

C 从父类引用指向子类对象

 多态的成员特点

 成员变量

编译看左边运行看左边

成员方法

编译看左边,运行看右边

静态成员方法

编译看左边,运行看左边

多态的好处

 A程序的维护性

 B 程序的扩展性

弊端

 不能使用子类特有的功能

怎么解决

 向下转型

 包:文件夹

定义格式

 Package包名

编译和运行带包的类文件

 方式1(手动)

A 编译带包的类文件生成class文件

B 手动创建文件夹

C 把A步骤的class文件放到步骤的文件夹中

D访问

方式2(自动)

命令

   Javac– d . xxxx.java

导包

 Import

匿名内部类

 没有名字的内部类

 格式

 New 类名或接口名()

{

         重写类接口方法或自己定义方法

};


你可能感兴趣的:(Java基础复习(二))