Java面向对象

一.类和对象
1.概念
--1.类:一组具有公共特征或者行为的对象的集合,对象的模板。               
--2.对象:对象是类的实例,具体存在的事物。

2.定义
类的定义:
[访问修饰符]  class 类名{
    //成员变量
   
    //成员方法

   //构造方法

}
对象定义:
类名  对象名 =   new   类名()

public class Person{
    String name;
    public void Print(){
        System.out.println("我的名字是:" + name);
    }
}
3.成员
1.成员变量:
对象.成员变量

2.成员方法:
对象.成员方法(参数)

3.构造方法:
类名(参数)
this(参数)【自调用】

4.类的方法
定义:
[访问修饰符]  [其他修饰符]  返回值类型  方法名(参数列表)  throws 异常列表{
     //方法体
     [return 返回值]
}
注意: 方法的单一性原则,即一个方法名只能实现一个功能

 4.1重写(Override)
概况:重写方法的覆盖,即子类覆盖父类的方法。

目的:父类的方法无法满足子类的实际需求


特点:
        1.继承或者接口实现
        2.方法名相同
        3.参数相同
        4.返回值相同
        5.访问修饰符子类不能严于父类

 4.2重载(Overload)
概括:一个类中定义多个参数列表不同的同名的方法

特点:

        1.同一个类中,同一个方法的不同体现形式
        2.方法名相同
        3.参数列表不同(参数个数、参数类型、参数顺序)
        4.与返回值类型和访问修饰符无关

5.构造方法
作用: 堆中创建对象,分配内存空间,并且完成对象的初始化。

注意:
       1.构造方法方法名与类名一致。
       2.构造方法在实例化是调用。
       3.构造方法没有返回值类型,不用void修饰。

6.类的运行原理
加载.class的类文件到内存的方法区。
堆中类的创建对象,并且完成对象的初始化。
将对象的地址赋值给栈中引用。
调用类的方法,则方法压栈  [ 先进后出]
垃圾回收器:类的对象无更多的引用指向,垃圾回收器会回收对象资源,释放内存。
       运行垃圾回收器: System.gc()

         退出程序:System.exit(0);

二.封装
1.概念
将对象的全部属性和方法结合在一起形成一个不可分割的独立单位

2.目的
解决程序的安全性问题

3.实现
将类的属性私有化private
给类的各个字段属性提供getter/setter方法
在getter/setter方法中加入流程控制语句
4.关键字
this
意义:
this当前对象的引用本身

使用:
this.属性
this.方法
this(参数)

注意:
如果this调用本类构造时,一定要写在代码的第一行

static
static:静态的
意义: static修饰的成员属于类的成员。
调用方法:  类名.成员名称

注意:
1.静态方法中不能直接调用本类的实例成员,可以直接掉本类的静态成员。
2.实例方法中可以直接调用本类的实例成员,也可以直接调用本类的静态成员。
3.静态方法中不能使用 this  | super关键字 

三.继承
1.概念
子类继承父类的所有特征或者行为,即父类所拥有的子类也全部拥有。

2.目的
解决程序的复用性问题

3.实现
访问修饰符  class  子类 extends 父类{
     //成员变量

     //成员方法

}

4访问修饰符
                      本类              同包               子类               其他
public              Y                   Y                    Y                 Y       
protected        Y                   Y                    Y                 N
默认                 Y                   Y                    N                 N 
private            Y                   N                   N                  N

5.注意事项
      1. 单继承:一个子类只能有一个父类,一个父类可以有多个子类。
      2.传递性:继承中的特征或属性可以传递给后代,即C继承B,B继承A,那么C也继承了A中的成员。
      3.单向性:即子类可以调用父类成员,但是父类不能调用子类成员。
      4.内存中,子类继承了父类所有成员,private或者默认成员子类也继承了,但是无访问权限。

6.关键字super
四.多态
1.概念
同一个引用类型指向不同的实例,从而执行不同的操作

2.目的
解决程序的拓展性问题

3.实现
方法的覆盖(继承 | 接口)
父类的引用指向子类的对象
   
   编译时多态:
   在编译阶段,方法的引用属于哪个类则调用哪个类的方法。

   运行时多态:
   在运行阶段,父类的引用会堆中实际的对象类型,根据实际属于哪个类,查找该对象实际的方法原型从而实现方法的调用。

4.abstract(抽象)
4.1抽象类
定义时机: 不希望实例化该类,认为实例化该类没有任何意义或价值。
例如:
public  abstract class Person{.....}

注意:
      1.抽象类不一定有抽象方法,抽象类中允许有实例方法。
      2.抽象类不能被实例化,抽象类有构造方法。
      3.拥有抽象方法的类一定是抽象类。
      4.子类继承抽象类,子类必须重写抽象类的方法,否则子类也必须定义为抽象类。

4.2抽象方法
定义时机:  实现方法体,没有意义或价值。

例如:
public abstract void show()

注意事项:
          1.拥有抽象方法的类一定是抽象类。
          2.抽象方法没有方法体。

5.接口
5.1定义与实现
接口概念:
接口是程序必须遵守的约束或者规范。

接口定义:
[访问修饰符] interface 接口名称{
    //成员变量
   //成员方法
}

接口实现:
public class 类 implements 接口列表{
  
}

5.2特点
接口的成员变量必须是 public & static & final 常量
接口的成员方法必须是 public & abstract 或者 public & static 
接口不能被实例化,没有构造方法
接口可以多实现。
一个接口可以继承多个接口
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值