专栏首页Golang开发Java基础——类&对象

Java基础——类&对象

类是对某一类事物的抽象描述,而对象用于表示现实中该类事物的个体。

类的定义

[修饰符] class 类名{
}

定义类的注意: (1)如果类使用了public 修饰符 必须保证当前的文件名和当前类相同 (2) 类名使用名称表示 类表示某一类事物 首字母大写

public class User {
    private String name;
    private int age;
}

类的创建

类创建对象的语法:

类名 对象名称 = new 类名();

空对象

一个引用变量没有通过new分配内存空间,这个对象就是空对象,Java使用关键字null表示空对象。当调用一个空对象的实例变量或实例方法时,会抛出空指针异常NullPointException

       String str = null;
       System.out.println(str.length());//java.lang.NullPointerException

内存分析

Student s = new Student();

创建了Student类的实例对象,同时把Student的对象赋值给变量s,s实际上是一个当前对象在堆内存上的引用,s被存放在栈内存中,指向实际的student的对象,而实际上Student的对象是存储在堆内存中的。变量s本身只是存储了一个地址值,并没有任何的实际值。 当一个对象被创建后,对象保存在堆内存中,Java程序不允许直接访问堆内存的对象,不管是数组还是对象,当程序访问引用变量的成员值或者方法时,实际上是访问引用变量的所指向的数组或者对象的成员变量或者方法。

关键字this

this指向对用调用该方法的对象,主要作用让类中的方法可以访问类中的另一个方法或者实例变量

对象的打印和比较

(1)toString()方法 (2)对象的比较操作 ==对于基本数据类型比较的是双方的值 对于引用数据类型 比较的是 内存的中的地址,每次使用new关键字 都表示的堆新开辟了一块内存空间地址值不同,如果对象拥有完全相同的数据 equals()方法 (3)对象的生命周期 每次使用new关键字的时候 就会在内存开辟新的空间 此时对象开始创建 对象的结束:当对象的没有被任何变量引用的时候 ,等着垃圾回收机制GCL 来回收垃圾

匿名对象

没有名称的对象 创建对象之后没有赋给某一个变量 new 类名();匿名对象 匿名对象只是在堆中开辟一个新的空间 但是没有把空间地址赋值给任何变量 因为没有名称,匿名对象仅仅只使用了一次。一般匿名对象的作为方法的实参传递、

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java创建Annotation

    注解是Java很强大的部分,但大多数时候我们倾向于使用而不是去创建注解。例如,在Java源代码里不难找到Java编译器处理的@Override注解,Spring...

    银河1号
  • Chrome 74 带来的新功能[每日前端夜话0x66]

    Chrome 74 已经发布了,虽然从用户的角度来看并没有什么令人兴奋的东西,但是对开发人员来说带来了一些好处。新版本附带了新的 Javascript 私有类字...

    疯狂的技术宅
  • 4 个关于Java 虚拟机内存的问题?

    JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;有些区域会抛出OOM异常,有些则不会,了解JVM的内存区域划分以及特征,是定位线上内存问...

    芋道源码
  • 如何快速掌握HTTP协议(高清思维导图 )

    HTTP 协议极其庞杂,它影响着浏览器、爬虫、代理服务器、防火墙、CDN、Web 容器、微服务等诸多方面,自身的规范却并不统一,所要面对的各类软件的新旧版本也同...

    猿哥
  • Android app反调试与代码保护的一些基本方案

    | 导语 本文介绍Android app代码(java + ndk)的反调试的方法和保护代码增加逆向难度的一些基本方法。 Android自问世以来得以迅速发展...

    腾讯Bugly
  • 承认吧你压根不懂怎么学新语言 No.142

    我相信所有的人基本都会有刚开始入门学习某门语言的时候,比如 Python、JS、Java、Go、Scala,所有人一开始都会被 Hello World !吸引,...

    大蕉
  • 优雅你的Python代码的15个tips

    前言:师妹前段时间非常认真地选了下学期的《大数据分析实践》选修课,根据几位师兄的建议买了本书开始自学 Python 语言。然而年后再见,师妹说她看完了书,做了一...

    用户2769421
  • 想进大厂光靠背面试题可没用,谈谈如何真正掌握一个技术知识点

    如何真正地掌握一个技术知识点,这是我一直在探索的一个问题,在秋招复习的那段时间,我主要通过阅读博客、整理博客等方式构建了自己的知识体系,所以也算是有了一些经验,...

    乔戈里
  • Python列表推导(list comprehension)VS 生成器表达式(generator expression

    列表是一种可以表示为元素集合的数据。一个简单的列表如下所示:[0, 1, 2, 3, 4, 5] 列表将所有可能类型的数据和数据组合作为其元素:

    银河1号
  • Spring Boot 整合 rabbitmq

    场景:用户注册,信息写入数据库后,需要给用户发送注册成功的邮件,再发送注册成功的邮件。

    程序员果果

扫码关注云+社区

领取腾讯云代金券