面向对象知识点

一.面向对象的基本概念

1.类与对象:

对象是客观事物的抽象,类是对对象的抽象。对象是类的实例,类是对象的模板。

类由属性和方法构成:

对象的特征在类中表示为成员变量,称为类的属性。
类的方法是对象执行操作的一种规范。方法指定以何种方式操作对象的数据,是操作的实际实现。
(1)类声明

 [访问符] [修饰符] class <类名>{
       //1.成员变量声明

       //2.构造方法

      //3.成员方法
}

成员变量

  (1)变量的访问修饰符:pubic修饰的变量是公共变量;protected修饰的变量是保护变量;private修饰的变量是私有变量。

(2)变量用static修饰的则称为静态变量(类变量)。没有static的为实例变量。

构造方法

构造方法也有名称;参数和方法体

(1)构造方法的名称必须与类名相同。

(2)构造方法不能有返回值,也不能返回void。

  (3)   构造方法必须在创建对象时用new运算符调用。

成员方法

成员方法的定义必须在类体内,不能定义在类体外。

格式:访问权限  返回值类型  方法名([形式参数])

(1)对象的创建
要获得一个类的对象一般需要两步:

1.声明该类类型的一个变量。
2.创建该对象(即在内存中为该对象分配地址空间),并把该对象的引用赋给声明好的变量。这是通过使用new运算符实现的。

(2)对象与对象之间是通过消息传递的。

(3)一个对象发送的消息包含三方面的内容:接收消息的对象;接收对象采用的方法(操作);方法所需要的参数。

this对象的使用
this关键字代表当前所在类的对象,即本类对象,用于解决变量的命名冲突和不确定性问题;在没有同名的情况下,可以直接使用属性的名字。

二.面向对象基本特征

1.封装 

定义

封装就是把对象的属性(状态)和方法(行为)结合在一起,并尽可能隐蔽对象的内部细节,成为一个不可分割的独立单位(即对象),对外形成一个边界,只保留有限的对外接口使之与外部发生联系。

原则

使对象以外的部分不能随意存取对象的内部数据,从而有效的避免了外部错误对它的“交叉感染”。

数据隐藏特性提升了系统安全性,使软件错误能够局部化,减少查错和排错的难度。

2.继承

被继承的类叫父类或超类,继承父类的类叫子类或派生类,在Java中,关键字“extends”表示继承,后面紧跟父类的类名。(是在已有类的基础上生成新类的过程)

public class Person {
    private String name;
    private int age;    
    private String gender;
    
}
class Teacher extends Person {
    private float salary;
    private String department;
}
class Student extends Person {
    private int[] score;
    private String grade;
    
}

 3.多态

可以总结为同一类对象表现出不同的行为。而且分为静态多态和动态多态。

三.方法重载

所谓方法重载,就是在一个类中,方法名字相同,而参数不同。
方法的重载规则:
1、方法名称必须相同。
2、参数列表必须不同,其中可以包括参数个数不同,参数类型不同、参数顺序不同等。
3、无法以返回值类型作为重载函数的区分标准。
4、被重载的方法可以改变访问修饰符。 
注意:返回值不影响方法重载。构造方法也可以重载 。

 四.方法重写

重写(override):也称覆盖。重写是子类对父类非静态,非private,非final方法的实现过程进行重新编写,返回值(JDK7以后,被重写的方法返回值类型可以不同,但是必须是具有父子关系的)和形参都不能改变。即外壳不变,核心重写。
【方法重写的规则】:
1).子类在重写父类的方法时,一般必须与父类方法原型一致:修饰符 返回值类型 方法名(参数列表)要完全一致。
2).JDK7以后,被重写的方法返回值类型可以不同,但是必须是具有父子关系的。
3).访问权限不能比父类中被重写的方法的访问权限更低。
4).父类被static、private final修饰的方法不能被重写。
5). 重写和重载的区别

 (1).重载
重载的参数列表是必须修改的,而返回值类型,访问限定符是可以修改的重载是静态绑定,即在编译时就根据实参类型确定了调用哪个方法。
 (2).重写
重写的参数列表,返回类型(可以是兮子米) 访问限定符(不能更严厉),一般是不能修改的。
重写是动态绑定,即在编译时不能确定具体的调用方法,而在程序运行时,才能确定具体的被调用的方法。

即:方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现。
6). 类的每个实例都能访问这个类的静态变量和静态方法。为清晰起见,最好使用“类名.变量’和“类名.方法”来访问静态变量和静态方法。
7). 实例变量的初始化顺序是在声明时初始化、使用初始化块初始化、使用构造方法初始化。静态变量的初始化顺序是声明时初始化、使用静态初始化块初始化、使用构造方法初始化。
8). 当一个对象不再被使用,系统自动调用后台垃圾回收器销毁对象,也可以调用System.gc0方法或Runtime实例的 gc0方法强制执行垃圾回收器。但这些方法都不保证系统立即回收无用对象。
9). 包是实现类的组织和命名的一种机制,可以将相关的类组织到一个包中,需要时使用import 语句导入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值