45:Java基础案例教程
面向对象
类的定义
面向对象是一种符合人类思维习惯编程思想,面向对象的特点主要可以概括为封装性、继承性和多态性
封装性:封装是面向对象的核心思想,将对象的属性和封装起来,不需要让外界知道具体实现细节
继承性:继承主要描述的是类与类之间的关系,通过继承,可以无需重新编写原有类的情况下,对原有类进行扩展
多态性:多态是指在程序中允许出现重名现象,它指在一个类中定义的属性和方法被它继承后,它们可以具有不同的数据类型或表现出不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义
46:类的定义
47:对象的创建与使用
在Java中,对象是通过类创建出来
在Java程序里,可以使用new关键字来创建对象
类名 对象名称=new 类名();
48:类的设计
49:类的封装
在设计一个类时,应该对成员变量做出一些限定,不允许外界随意访问,这就需要实现类的封装
51:构造方法的定义
在一个类的定义方法如果同时满足这三个条件,该方法成为构造方法,具体方法如下
a、 方法名与类名相同
b、在方法名的前面没有返回值类型的声明
c、在方法中不能使用return语句返回一个值,但是可以单独写一个return语句来作为方法的结束
52构造方法的重载
a,一个类可以定义多个构造方法,每个构造方法的参数类型或参数个数不同即可
b,在创建对象时,可以通过调用不同的构造方法来为不同的属性进行赋值
53:this关键字的使用
Java中提供了一个关键字this来指当前对象,用于在方法中访问对象的其他成员
55:静态变量
a,只要在类中定义的方法前加上static关键字
b,同静态变量一样,静态方法可以使用“类名.方法名”的方式来访问,也可以通过类的实例对象来访问。
注意:在一个静态方法中只能访问用static修饰的成员,原因在于没有被static修饰的成员需要先创建对象才能访问,而静态方法在被调用时可以不创建任何对象。
56:静态方法
57:静态代码块
58:成员内部类
创建内部类的具体语法:
外部类名.内部类名 变量名 = new 外部类名().new 内部类名();
60:继承的概念
在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系。
1,在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称作子类,现有类被称作父类。
2,子类会自动拥有父类所用可继承的属性和方法
3,在程序中,如果想声明一个类继承另一个类,需要使用extends关键字
61:方法的重写
- 重写父类方法
1.在继承关系中,子类会自动调用父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。
2,需注意的是,在子类中重写的方法需要和父类重写的方法具有相同的方法名,参数列表以及返回值类型
62:super关键字
a,当子类重写父类的方法后,子类对象将无法访问父类被重写的方法
b,使用super关键字访问父类的成员变量和成员方法
super.成员变量
super.成员方法{[参数1,参数2...]}
63:final关键字
Java中的类被final关键字修饰后,该类将不可以被继承,也就是不能够派生子类
特征:
1,final修饰符的类不能被子类重写
2,final修饰的方法不能被子类重写
3,final修饰的变量(成员变量和局部变量)是常量,只能赋值一次
64:抽象类
1,当定义一个类时,常常需要定义一些方法来描述该类的行为特征,但有时这些方法的实现方式是无法确定的。
2,Java允许在定义方法时不写方法体,不包含方法体的方法为抽象方法,抽象方法必须使用abstract关键字来修饰
abstract void shout();//定义抽象方法shout
65:接口
a,如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另一种方式来定义,即接口 。
b,接口是由常量和抽象方法组成的特殊类,是对抽象类的进一步抽象。
c,在定义接口时,需要使用interface关键字来声明。其语法如下:
[public] interface 接口名 [extends 接口1,接口2...]{
[public] [static] [final] 数据类型 常量名 = 常量名;
[public] [abstrcat] 返回值 抽象方法名(参数列表);
}
67:多态的概述
1,多态概念
在同一种方法中,这种由于参数类型不同而导致执行效果各异的现象就是多态,继承是多态得以实现的基础;在Java中为了实现多态,允许使用一个父类类型的变量来引用一个子类类型的对象,被引用子类对象特征的不同,得到不同的运行结果。
2,多态的类型转换
在多态的学习中,涉及到将子类对象当作父类类型使用的情况,称:向上转型
将子类对象当作父类使用时不需要任何显示的声明,需要注意的是,此时不能通过父类变量去调用子类中的特有方法。
68:对象的类型转换
69:object类
70:匿名内部类
Java内部类可以分为:成员内部类,方法内部类和匿名内部类等。