面向对象
面向对象(Object Oriented)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
对象
现实生活中万物皆对象,是客观现实中所具体存在的东西。既然对象是一个具体存在的东西,那么它就一定有自己的特点,该特点就是属性和行为的集合。
属性:描述某一个事物的特征的名称叫做属性
行为:表示某一个事物的行为动作(动词描述)
对象的特点 = 对象的属性+对象的行为
讨论:通过描述一个对象的属性和行为就可以间接的描述出一批对象的属性和行为!
类
类是一个抽象的事物,一个抽象的东东(东西),客观世界中不存在,是一个抽象的事物;是一个模板。通过该模板可以创建出该类所对应的对象。
总的来说:类就是一系列对象所公有属性和行为集合,面向对象编程的第一步就是抽类(通过一个对象把该对象的所有属性和行为抽取出来放到一个容器中封装起来,这个容器就是所谓的类),类一旦创建完毕之后,就可以通过类的描述创建出类所对应实例(对象)。
java语言的类
public class 类名{
}
public class Student{
public String studentName;
public String sid;
public int age;
public char gender;
public void studyEnglish(){
System.out.println("学生学习英语");
}
public void studyMath(){
System.out.println("学习数学");
}
public void studyChinise(){
System.out.println("学习语文");
}
}
创建对象
构造方法:
构造方法的是类里面的重要方法,作用是用于创建类的对象,只有通过构造方法创建出对象以后,才能使用该对象调用自己的行为和访问自己的属性
特点:
1、构造方法的方法名和类名完全一样
2、构造方法没有返回值类型
3、构造方法的权限修饰符一般是public
书写步骤:
1、写public修饰符
2、写类名也就是构造方法的方法名词
3、参数表
4、方法体
补充:构造器必须通过 new 关键字进行调用,也就是通过new关键字创建对象,如果创建一个类的时候没有显示申明一个构造器,那么类会默认创建一个默认的无参数构造器,但是如果显示申明了有参数构造器以后,那么默认的无参数构造器将会失效,这时候必须显示申明无参数的构造器。
方法的重载
方法的方法名相同参数列表不同的方法叫做方法的重载,参数列表不同主要体现在参宿个数个参数的类型,方法重载就是当两个方法的方法名一样的时候,通过参数表让编译器正确的识别要调用哪一个方法。
this关键字
this的作用:
使用在实例方法中:
实例方法中的this关键字表示调用该实例方法的当前对象,也就是说那个对象调用的该方法,那么该方法里面出现的this就表示那个对象,也就是说this表示当前调用方法的对象。
使用在构造器中:
使用在构造器中主要有两个作用,第一个是表示即将调用该构造器创建的对象;第二个可以代表其它构造器,但是必须方法构造器的第一行,否则编译器将会出错。
注意:实例方法里面都一个隐含的this,静态方法里面不能出现this关键字
继承
继承 是面向对象软件技术当中的一个概念,与多态、封装共为面向对象的三个基本特征。 继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。
继承的好处:扩展子类(子类完全可以添加自己的行为和属性),重写父类(主要是对父类的方法进行改造)
java 语言里面的继承实现
子类继承父类Java语言里面使用是extends关键字,A exends B的形式;Java语言类与类之间不支持支持多继承
子类重写父类方法的原则:
必须满足:两同 两小 一大
两同:子类的方法名和父类的方法名必须一样,子类的方法的参数列表必须和父类的完全一致
两小: 子类的返回值类型一定要小于或者等父类的返回值类型给,子类抛出的异常类型一定要小于
父类抛出的异常类型
一大: 子类的权限修饰符的权限必须大于或者等父类的权限修饰符的权限