前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java基础——类&对象

Java基础——类&对象

作者头像
羊羽shine
发布2019-05-28 13:23:02
4680
发布2019-05-28 13:23:02
举报
文章被收录于专栏:Golang开发Golang开发

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

类的定义
代码语言:javascript
复制
[修饰符] class 类名{
}

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

代码语言:javascript
复制
public class User {
    private String name;
    private int age;
}
类的创建

类创建对象的语法:

代码语言:javascript
复制
类名 对象名称 = new 类名();
空对象

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

代码语言:javascript
复制
       String str = null;
       System.out.println(str.length());//java.lang.NullPointerException
内存分析
代码语言:javascript
复制
Student s = new Student();

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

关键字this

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

对象的打印和比较

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

匿名对象

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.05.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 类的定义
  • 类的创建
  • 空对象
  • 内存分析
  • 关键字this
  • 对象的打印和比较
  • 匿名对象
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档