JavaSE(三):面向对象(2)——类与对象

类:类是一组共性的产物,是同一类事物的集中表现。

对象:是一种个性的体现,是个体的产物。

对象中的所有操作行为都由类决定,所以,在使用中只要是类定义出的操作对象都可以应用,而如果类没有定义出的操作,对象肯定无法使用。

类是对象的模板,对象是类的实例

 

 

在Java中可以使用class关键字来定义一个类,在类中有两大组成部分:属性(变量)、方法。

class Person{ // 定义类

String name ; // 表示一个人的姓名

int age ; // 表示一个人的年龄

public void tell(){ // 表示一个功能,说话

System.out.println("姓名:" + name + ",年龄:" + age) ;

}

};

在本程序中就定义出了一个类,里面有两个属性:name、age,和一个方法:tell()。在tell()方法将进行内容的输出。一个类定义完成之后肯定无法直接使用,需要依靠对象进行操作,那么下面给出对象定义格式:

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

一旦有了对象之后就可以通过“对象.属性”或者是“对象.方法()”进行类的调用:

· 对象产生:Person per = new Person() ; 既然存在了关键字new,而且类又属于引用数据类型,那么肯定现在就开辟了相应的栈及堆内存空间,而且以上的代码可以拆分成两步:

|- 声明对象:Person per = null ; à 在栈内存中声明

|- 实例化对象:per = new Person() ; à  开辟对应的堆内存空间

而且一定要记住的是,如果一个对象没有被实例化而直接使用的话,将出现以下的问题:

Exception in thread "main" java.lang.NullPointerException

那么,如果现在按照以上的规律产生第二个对象肯定是不会互相影响的,因为只要存在了关键字new就表示永远会开辟新的内存空间

每一个对象拥有各自的内存空间,所以不会互相影响,而且可以发现一点,每一个对象中实际上保存的只是属性,并没有保存方法,因为所有的方法都是每个对象所共同拥有的,保存在全局代码区之中

栈内存保存的是对堆内存的引用地址,而堆内存中保存的是每一个对象所拥有的属性,而全局代码区之中保存的是所有类中的方法,表示公共调用。

 

对象的引用传递:

在数组中本身也属于引用传递,而且发现所谓的引用传递指的就是一个堆内存空间,可以同时被多个栈内存所指向,那么类本身也是一样的,即:一块堆内存可以同时被多个对象所同时指向。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值