一,面向对象
1,概念:一种符合人了思维习惯的编程思想,在程序使用中用对象来映射现实中的事物,使用对象的关系,来描述事物之间的联系。
2,把构成问题的事务按照一定规则划分多个独立对象,然后通过调用对象的方法来解决问题
3,特点:封装,继承,多态。
4,封装:是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道
5,继承:主要描述的是类与类之间的关系,通过继承,可以不需要重新编写原有类的情况下对原有类的功能进行扩展。
6,多态:指在程序中允许出现重名现象,它指在一个类中定义的属性和方法被其他类继承后,它们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类具有不同的语义。
二,类与对象
1,面向对象的编程思想:力图让程序中对事物的描述与该事物在现实中的形态保持一致。
2,类的定义:在面向对象的思想中最核心的就是对象,为了在程序中创建对象,首先需要定义一个类。类是对象的抽象。它用于描述一组对象的共同特征和行为。类中可以定义成员变量和成员法,其中成员变量用于描述对象的特征,也被称作属性,成员方法用于描述对象的行为。可简称为方法。
4,对象的创建与使用
a,在Java程序中可以使用new关键词来创建对象,具体格式如下:
类名 对象名称 = new 类名();
5,类的设计:在Java中,对象是通过类创建出来的
6,类的封装:所谓类的封装是指在定义一个类时,将类中的属性私有化。即使用private关键艺来修饰。私有属性只能在字所在类中被访问。如果外界想要访问私有属性,
需要提供一些使用publiec修饰的公有方法。其中包括用于获取属性值的gatXx方法和设微属性值的setXxx方法。
三,构造方法
1,构造方法的定义:
条件:方法名与类名相同;在方法名的前面设有返回值类型的声明;在方法不能使用return语句返回一个值,但是可以单独写return语句来作为方法的结束。
2,构造方法的重载:
a,一个类可以定义多个构造方法,每个构造方法的参数类型或参数个数不同即可
b,在创建对象时,可以通过调用不同的构造方法来为不同的属性进行赋值
四,this关键字
Java中提供了一个关键字this来指当前对象,用于在方法中访问对象的其他成员
五,static关键字
2,静态方法
a,只要在类中定义的方法前加上static关键字
b,同静态变量一样,静态方法可以使用“类名.方法名”的方式来访问,也可以通过类的实例对象来访问。
注意:在一个静态方法中只能访问用static修饰的成员,原因在于没有被static修饰的成员需要先创建对象才能访问,而静态方法在被调用时可以不创建任何对象。
六,成员内部类
1,成员内部类
创建内部类的具体语法:
外部类名.内部类名 变量名 = new 外部类名().new 内部类名();
七,类的继承
一,继承的概念
在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。
1,在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类。
2,子类会自动拥有父类所用可继承的属性和方法
3,在程序中,如果想声明一个类继承另一个类,需要使用extends关键字
注意事项:
二,重写父类的方法
1,在继承关系中,子类会自动调用父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。
2,需注意的是,在子类中重写的方法需要和父类重写的方法具有相同的方法名,参数列表以及返回值类型
3,super关键字
a,当子类重写父类的方法后,子类对象将无法访问父类被重写的方法
b,使用super关键字访问父类的成员变量和成员方法;
super.成员变量
super.成员方法{[参数1,参数2...]}
c,使用super关键字访问父类的构造方法:
super([参数1,参数2...])
八,final关键字
1,final关键字修饰符
a,Java中的类被final关键字修饰后,该类将不可以被继承,也就是不能够派生子类
b,可用于修饰符,变量和方法,它有“无法改变”或者“最终”的含义
c,特征:
1,final修饰符的类不能被子类重写
2,final修饰的方法不能被子类重写
3,final修饰的变量(成员变量和局部变量)是常量,只能赋值一次
九,抽象类和接口
一,抽象类
1,当定义一个类时,常常需要定义一些方法来描述该类的行为特征,但有时这些方法的实现方式是无法确定的。
2,Java允许在定义方法时不写方法体,不包含方法体的方法为抽象方法,抽象方法必须使用abstract关键字来修饰
abstract void shout();//定义抽象方法shout
3,接口
a,如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另一种方式来定义,即接口 。
b,接口是由常量和抽象方法组成的特殊类,是对抽象类的进一步抽象。
c,在定义接口时,需要使用interface关键字来声明。其语法如下[public] interface 接口名 [extends 接口1,接口2...]{
[public] [static] [final] 数据类型 常量名 = 常量名;
[public] [abstrcat] 返回值 抽象方法名(参数列表);
4,接口的实现类声明格式如下:
[<修饰符>] class <类名> [extends <超类名>] [implements <接口1>,<接口2>...]
十,多态
1,多态概念
在同一种方法中,这种由于参数类型不同而导致执行效果各异的现象就是多态,继承是多态得以实现的基础;在Java中为了实现多态,允许使用一个父类类型的变量来引用一个子类类型的对象,被引用子类对象特征的不同,得到不同的运行结果。
2,多态的类型转换
在多态的学习中,涉及到将子类对象当作父类类型使用的情况,称:向上转型
将子类对象当作父类使用时不需要任何显示的声明,需要注意的是,此时不能通过父类变量去调用子类中的特有方法。
3,object类
4,匿名内部类
Java内部类可以分为:成员内部类,方法内部类和匿名内部类等。