类和对象总结(部分)

类和对象

一、类和对象概念

1.面向对象编程

  • 一种编程风格
    • 使用对象和对象之间的交互来设计系统
    • 数据和相关的逻辑封装在一起
  • 核心概念
    • 对象(实例)
    • 方法
    • 消息
    • 封装
    • 继承
    • 多态

2.类

  • 对事物的抽象
    • 属性
    • 行为

3.对象

  • 类的具体实例
    • 类中的属性,有自己独立的取值(状态)
    • 类中的行为是外部对自己进行操作的接口(方法)

4.类和对象的关系

  • 类不是对象(是用来创建他们的模型)
  • 类也称为模板,它提供了对象的基本框架

5.面向对象编程的基本过程

  • 定义类
  • 创建对象
  • 对象和对象互相交互
    • 方法的调用(发送消息)

6.创建类的通用格式

4okoRA.png

7.包

  • 在java中,包主要有以下用途

    • 包允许将类组合成较小的单元
    • 有助于避免命名冲突
    • 包允许在更广的范围内保护类、数据和方法
  • 包可以是类、接口和子包的集合

  • 包名的命名规范

    • 通常都是用小写英文字母

    • 一般为公司网址的反向排列,如

      com.company.region.package

8.包的使用

  • 创建包
    • package mypackage;
  • 访问包中的类
    • mypackage.My_Class
  • 导入包
    • import java.util.*;
  • 导入包中的类
    • import java.util.Arrays;
  • 导入常量
    • import static java.lang.Math.PI;

二、类的定义、声明创建

1.类的成员

  • 变量(属性)
    • 静态变量
    • 实列变量
  • 方法(行为)
    • 静态方法
    • 实例方法
  • 构造方法

2.实例成员

  • 实例变量
    • 反映对象的状态
    • 每个实例拥有自己的copy
  • 实例方法
    • 反映每个对象的行为
    • 方法内部可直接访问实例变量
    • 方法内部可直接调用其他实例方法
    • 可通过对象的引用调用对象的实例方法-消息传递

3.静态成员

  • 静态变量(类变量)
    • 类的所有实例共享一个拷贝
  • 静态方法
    • 与类本身相关的行为,与类的具体实例无关
    • 方法内部可不能直接访问实例变量或实例方法
    • 可通过对象的引用调用对象的实例方法
    • 可通过类名调用类的静态方法

4.方法重载(Overloading)

  • 规则
    • 方法名相同
    • 参数列表不同——参数的类型、个数
  • 意义
    • 对于含义相近的成员方法,使用相同的名字便于理解
  • 方法被调用时,编译器根据参数的类型和数量来确定调用哪个重载方法

5.构造方法

  • 用于创建对象的方法

    new <构造方法名>(参数列表...)

  • 语法规则

    • 方法名与类名相同
    • 声明中没有返回值类型
    • 可以有参数列表
  • 意义

    • 在对象创建时设置其内部状态

    • 保证对象创建完成后立即可用

      不需要在使用对象之前设定内部状态

创建对象:Member m = new Member();

6.缺省构造方法和构造方法重载

  • 如果类中不定义构造方法,编译器会自动为类添加一个默认的构造方法
    • 不带任何参数
    • public可见范围
  • 一个类可以定义多个构造方法,通过参数列表不同实现重载

7.this关键字

  • this是指向当前对象的引用

    static方法中可否使用this关键字?

  • 用法

    • 实例方法或构造方法使用this访问其他实例成员
    • 构造方法重载,在一个构造方法中调用构造方法
      • 必须位于构造方法的第一句

8.成员变量初始化

  • 声明时初始化

    public static int i=3;

    private String name="BMW";

  • 默认初始值

    public static int i;

    public String name;

  • 构造函数中赋初值

  • 静态代码块/非静态代码块(实例代码块)

三、对象的创建和使用

1.创建对象

Dog mydog = new Dog();

类名 声明一个引用变量 = 关键字new 调用构造方法;

2.对象的引用

mydog.bark()

对象名.方法名

3.对象引用的赋值

Dog fido=new Dog();

Dog hero=new Dog();

fido=hero;

4.对象作为参数

  • 对象作为方法参数,在方法中只能改变该对象的状态,不能改变该对象的引用
  • 实参传给形参的过程可理解为对象引用的赋值

5.创建对象数组

Dog[] pets = new Dog[7]

标记为Dog数组 声明一个Dog数组变量 = new 创建大小为7的Dog数组

6.对象数组的使用

pets[0]=new Dog();

pets[0].name="Fido";

pets[0].bark();

7.垃圾回收

BooK b=new Book();

Book c=new Book(); b=c

  • 有引用指向对象时,对象不会被回收
  • 对象变为可回收
    • 引用永久性的离开它的范围
    • 引用被赋值到其他对象上
    • 直接将引用设定为null
posted @ 2021-09-30 15:44  七柯核桃  阅读(80)  评论(0)    收藏  举报