类与对象的定义与使用

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 引用内存分析
因为对象也是引用数据类型,与数组相似。本质都是:一块堆内存可以被多个栈内存所指向。
在这里插入图片描述
垃圾空间:没有任何内存指向的堆内存的空间

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值