Java 编程思想学习笔记之二 ------- 对象

最近在整理由于比较空余,花了点时间把之前的学习笔记-------  Java 编程思想学习笔记之二-------一切都是对象

一、Java语言里包含基本数据类型和对象,当然基本数据类型也有相应的封装器,可以通过new来创建相应基本数据类型的对象,因而可以说在Java里一切都是对象。对于基本数据类型,可以通过自动变量的方式访问,也可以通过封装器new一个对象然后再通过对象进行访问,而对象的访问是通过句柄来操作的,也就是说对象可以不断的去创建,但是要去使用的话,必须通过句柄来访问,句柄相当于一个遥控器,通过这个遥控器给关联的对象发送消息。那么在Java里这些基本数据类型、句柄、对象是如何保存的呢:

a、寄存器,寄存器位于CPU内部,存储速度非常快,对于我们Java编程来说,我们无法控制哪些是数据保存在寄存器中,这个是由编译器决定如何使用的,因而我们不用太关注这个

b、堆栈,通常也叫做栈区,位于随机存储器的上部,向下生长来拓展栈区大小,一般我们的对象句柄,基本数据类型的自动变量保存在这个位置

c、堆区,堆也是位于随机存取存储器中,是在运行期自动分配的,具有灵活性,但是灵活也带来了时间的损耗,一般对象会保存在这个位置

d、静态存储区, 也是位于随机存取存储器中,主要用来保存 static 定义的数据

e、常数区,常数区也是位于随机存取存储器中,用于保存不可变的数据或者常量数据

f、非RAM区,可以理解为我们的磁盘

以下是基本数据类型:

类型     位数       封装器

boolean  1         Boolean

char     16        Character

byte     8         Byte

short    16        Short

int      32        Integer

long     64        Long

float    32        Float

double   64        Double

基本数据类型的大小时固定的,不会由于所使用平台不一样,而数据的位数不一样,另外需要注意的是,基本数据类型和句柄在作用于结束后就消失了,而对象依然存在,对像和句柄不是必然联系的,可以通过新的句柄继续控制这个对象,也可以让Java的垃圾回收器销毁这个对象

 

二、创建类

Java程序可以理解为由各种类组成,然后通过给不同的类的对象发送消息,来完成相应的任务,那么如何创造一个类呢------> 通过关键字class

类主要有两部分组成,一个是字段、一个是方法

class MyWork{

1、字段:字段可以说是属性、数据成员,这个类有的一些特点,字段可以是基本数据类型,也可以是其他类的实体对象

2、方法: 也可以理解为函数,方法是指这个类有的行为动作,完成某个任务

}

 

1、通过之前的学习,字段的定义很容易理解,如果是基本数据类型的话,可以通过自动变量来定义,也可以通过基本数据类型的封装器来定义,如果是对象的话,就用构造器(new)关键字来创建,例如:

int i = 10; 通过自动变量来创建基础数据类型

Integer i = new Integer(10); 通过基础数据类型的构造器来创建

Myclass a = new Myclass(); 通过构造器来创建一个非基础数据类型对象

 

2、方法是这个类实体对象的行为,实际上是一个函数,只是叫法不一样,定义如下:

返回类型 方法名(变量){

实体

}

int addOne(int i){

return ++i;

}

上面也说了,Java里可以理解为一切都是对象(基本数据类型也是可以用对象来表示),那么方法的返回类型可以是基本数据类型也可以是对象,变量可以是基本数据类型也可以是对象,以下例子没有实际意义,只是举例

String getString (String s){

return s;

}

 

另外需要注意的一点,如果用static关键字来修饰字段和方法,程序运行之前就存在内存中,这时候这个类的对象可能都还不存在,因此static字段或者方法与这个类的任何对象都没有关联,需通过类来访问static字段和方法,当然如果这个类的对象创建了,然后通过对象也是可以找到static字段和方法的。这点跟非static字段和方法是有很大区别,非static字段和方法必须通过创建对象,才能存在,才能分配到内存去运行,然后才能使用。也正是这样,static字段和方法是无法直接访问同个类里面的其他非static字段和方法,因为此时可能没有实际对象,没有实际对象就没有真实存在,也就没法访问了。static字段和方法与类关联的,不是与对象关联的,那么这个static字段和方法的值改变后,会把这种改变应用到所有的对象中去。

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值