菜鸟学JAVA之——包、访问控制符

一、包 package

Java对创建在工程中的类按照包的概念来管理

包名命名规则:

  • 一般将域名反转过来作为包名的一部分,没有自己域名就用自己名字或者特征创建一个 。

    eg: package edu.yau.test

  • package放在有效代码行的第一行

同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。
在这里插入图片描述
有两个名字相同类:Car,分别在不同包中,如果要在本包中调用另一个包中的Car类,则必须使用全类名,如下
在这里插入图片描述
每次都要写全类名太麻烦,所以需要用import导入zaq包中的类Car
在这里插入图片描述
但这时本类就需要使用全类名,要不然就不知道到底是那个包中的Car类了

二、访问控制符

访问控制符可以修饰类,属性,方法

  • 任何人都可以看见的叫公开属性,任何人都可以调用的叫公开方法

  • 任何人都不可以看见的叫私有属性,任何人都不可以调用的叫私有方法

    私有的属性或方法只能自己调用,但是有些场景可以把原本私有的方法变成对某些人公开。比如,我结婚了,我就把我的所以收入,私房钱对我媳妇公开了。同样你不能指挥我洗碗,但是我媳妇可以。

public:在任意其他类中的任意位置,都可以(访问或者调用)被public修饰的属性或者方法

private:只能在本类中调用的属性

package:在不加入任何的访问控制符的时候Java会默认的加一个访问控制符:package,但不允许人为的加,不加的话Java就默认此方法或属性在同包中可以访问,不同包中不能访问

主类必须是public的,但内部类可以是private的。

构造方法也可以别访问控制符修饰,但最好是public的。

这里附一张访问控制符的权限表:
在这里插入图片描述

三、题外话

讨论Java中对象和内存之间的关系,理解static为什么可以不创建对象就可以被调用,以及后续继承的相关知识

Java的内存分为五个部分(Java的内存是在JVM上分的):

程序计数器:不起到任何存储数据的作用,只记录现在的代码执行到多少行了

栈:栈中放的都是对对象的地址引用(内存的物理地址)(每个线程都有一个栈)

堆: 存放使用new创建的对象,全局变量 (所有线程共用一个堆)

常量池

方法区

对象和内存之间的关系
在这里插入图片描述

c.price = 2000,c的price变为2000,但是a的price还是99

这是因为这些东西都是动态变量的特征,跟着对象走,改是按对象改的

b.price 报错,空指针异常

访问控制符与内存的联系
在这里插入图片描述
这些内容还不够完善,在后续学习过程中会继续加以补充修改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值