欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

类与对象的定义与使用

程序员文章站 2022-04-02 10:48:22
...

1 简介

1.1 面向对象的三大特征

1 封装性、2 继承性、3 多态性

  • 封装性:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。简单来说,内部操作对外部而言不可见(保护性)。
  • 继承性:指一种能力,可以使用现有类的所有功能,并在无需重新编写原来的类的情况下,对这些功能进行扩展。
  • 多态性:指一个类实例的相同方法在不同的情形有不同的变现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。(利用多态可以得到良好的设计)

实例化:在面向对象的编程中,通常把类创建对象的过程称为实例化
eg:Data data = new Data();就是用日期类创建了一个日期的对象,就叫对象的实例化

2 类与对象的定义与使用

2.1 基本概念

类是指一个共性的概念,对象指一个具体的事物。首先产生类,再产生对象,且对象的所有行为,要在类中进行完整的定义。
类中的组成部分:属性(变量)、方法(行为)

2.2 定义与使用

定义一个类:

class 类名称{
    属性1;
    属性2;
    属性...;
    
    方法1(){}
    方法2(){}...
}

产生对象的语法:
类名称 对象名称 = new 类名称();//只要出现了关键词new就开辟了内存。
此时可以通过对象调用实例变量与实例方法。例如:

class Person{
    protected String name;
    public int id;
    public Person(String name,int id){
        this.name = name;
        this.id = id;
    }
    public String get(){
       return "姓名:" + this.name + "  编号:" + this.id;
    }
}
public class KeJian {
    public static void main(String[] args) {
        Person per = new Person("你",18);
        System.out.print(per.name);
        System.out.println(per.id);
        System.out.println(per.get());
    }
}
//输出:
//你18
  姓名:你  编号:18

2.3 内存与引用传递分析

1 内存分析
内存区域划分,能划分出多部分,现只了解其中几个。

  • 栈内存:存放的是局部变量(包含编译期可知的各种基本数据类型、对象引用-即对内存的地址,可以简单的理解为对象的名称)。
  • 堆内存:保存的是真正的数据,即对象的属性信息(new出来的东西都在堆上)。
  • 方法区:放的是方法,也是把.class文件中的二进制指令加载到内存中,就放到一个专门的空间(方法区)里

Heap对于一个JVM来说,只有一份;JVM stack 可能有多份,每个thread(线程)有一份。(线程:一个代码的执行流)

注:对象必须在实例化后调用,否则会产生NullPointerException(运行时出错),编译不会出错。因为对象是引用数据类型,包括数组、类、接口都会出现此异常。

2 引用内存分析
因为对象也是引用数据类型,与数组相似。本质都是:一块堆内存可以被多个栈内存所指向。
类与对象的定义与使用
垃圾空间:没有任何内存指向的堆内存的空间