Java 第四天

从今天开始进入Java面相对象,C#中对面相对象理解就是万物皆对象,这个细节一点写笔记,希望自己对面相对象有更详细理解。

一、类

类:对显示生活中一类具有共同属性和行为的实物的抽象

对象:是能够看得到摸得着的诊室存在的实体

简单理解:类是对事物的一种描述,对象则为具体存在事物。

类是对象的抽象,对象的类是实体

ps:如果手机算一个类,交流中提到手机并不知道手机具体指哪个,可能是苹果、小米华为等等各个品牌,这就是类。如果这里说具体到某一个手机,比如你的小米14手机,你大概率手里面就一个。那么这小米14就是具体的对象。这段话可以验证上面的话。

二、对象属性

属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值。

ps:还是以手机举例,你的小米14手机,它的属性可以看来有:品牌名字、价格、cpu芯片、内存大小等等。这些都是手机共有的属性,可能属性的值不一样,小米的可能是芯片骁龙,苹果手机芯片可能是A15。虽然都有价格属性,各个手机价格的属性值,也就是售价,都不一样。

三、行为

行为:能够执行的操作。 ps:行为就是方法

ps:还是用手机举例,那么手机的发短信、打电话、聊微信等等,这些就是行为。

这点上我也不太明白,可能因为学到这里的时候还没太过透彻。如果让我来说明,就是具体执行代码的代码块。用我C#的理解,我写了一个方法,里面肯定有具体要操作的事情,比如输出一个helloworld的控制台输出。

四、类的定义

1、类的重要性:类是Java程序的基本组成单位

类是什么:是对象现实生活中一类具有共同属性和行为的事物的抽象,确定对象将会拥有的属性和行为。

ps:为什么这里我又写了一次,我感觉这里可以说明一点为什么是现实的抽象,是因为我们写的程序肯定要服务于现实,比如做一个表格,那列名(字段)如何定义,肯定要起一个名字吧,手机列里面可以写各种手机,这就是我们自己定义类,所以是现实的抽象。(因为我第一次学习C#的时候让老师一句万物皆对象也很懵,我已经努力的让写清晰什么是类,不知道会不会帮到一些人)

2、类的组成

属性:在类中通过成员变量来体现(类中方法外的变量)

行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

五、对象的使用(ps:就当熟悉了,这个和C#一模一样)

  1. 创建对象

格式:类名 对象名 = new 类名();

范例:Phone phone1 = new Phone();

  1. 使用对象
    1. 使用成员变量

格式:对象名.变量

范例:phone1.bard = “xiaomi”;

    1. 使用成员方法

格式:对象名称.方法名

范例:phone1.call();

六、对象内存

  1. 单个对象
  2. 多个对象
  3. 多个对象指向同一个地址

ps:这个算是对自己帮助比较大的,因为自己学习了一部分的C语言,对于指针比较了解。

这里扩展一个知识点,因为自己学习比较杂,大概了解(如果有错也希望有人看到可以指出来)。

内存分为栈内存和堆空间,栈的意思是:存放内存的地址,这个地址可以指向一个空间,这个空间就是堆内存。(大致理解一下,栈内存就是宾馆房卡,可以打开其中一个房间,上面也写着门牌号,去哪个房间,房间也就是堆内存。具体房间里面有什么,就是咱们的数据)我感觉初学者可以不用太过理解C语言的指针一样的内容,容易打消学习积极性。

下面的是更加一级的扩展心得:

另外这一段的学习让我大概了解了出栈,每次运行完毕以后会把方法出栈。(个人理解,有可能不对:出栈以后只是更换了房间号码,或者说更换了一个房卡,用其他房卡打开的还是原来的房间,所以如果新建的数据类型如果不进行初始化,有可能还是过去的数据,过去自己学习C语言的时候,越界访问以后就是其他的值。)

七、成员变量和局部变量的区别

  1. 成员变量:在类中的方法外定义的变量。
  2. 局部变量:在类中方法里面定义的变量。
    1. 在同一个方法中,不允许存在多个相同变量的名称。
    2. 局部变量如果想使用,必须先赋值,成员变量是有初始化值的。
    3. 在方法在传递的参数(形参)也是属于该方法里面的局部变量

区别(不同)

成员变量

局部变量

类中位置

类中方法外

类中方法里(方法声明传递参数)

内存中位置

堆内存

栈内存

声明周期不同

随着对象存在而存在

随着对象消失而消失

随着方法调用存在而存在

随着方法结束消失而消失

初始化不同

有默认的初始化值

没有默认的初始化值

必须先定义赋值后使用

ps:以前学习C#的时候,让必须先声明,然后赋值,最后使用。这里补全了为什么有些可以不赋值直接使用,不过也可以记忆成为声明->赋值->使用,避免出错。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值