Java中的包和访问修饰符

1.包

包的作用:用于分类,将不同功能的类放在不同包中以便区分。

1)包存在的意义

                a.在定义的类过多时,包可以将如此多的类进行分类,便于管理
                b.不同包下的类可以同名,减少了名命时的麻烦
                c.可以通过包,对同一包下的类进行限定

2)包的定义:package 包名;

3)跨包请求时需要进行导入 import 包名 类名;导入指定类import 包名.*;

2.权限/访问修饰符

修饰符的意义在于限定属性和方法可以被哪些类或方法来使用

        a.类的访问修饰符有两种 1.public2.默认(不写的时候就是默认)

b.类中的属性或方法的修饰符有1.public(公有)2.protected(受保护的)3.默认4.private(私有)。

权限

同一类同一包不同包的子类所有类
public允许允许允许允许
protected允许允许允许不允许
默认允许允许不允许不允许
private允许不允许不允许不允许

3.static关键字

static:静态的

用来修饰属性(成员变量),则该属性就成为类属性(不依赖于某个对象而存在),所有该类的实例对象都共用这一个属性,任何一个实例改变了静态属性值,大家看到的都是修改过的值。在内存中static属性是所有类实例共有的内存地址。static来修饰方法,则该方法就成为静态方法,可以直接通过类名访问,一般在工具类中定义工具方法。

静态变量和实例变量的区别:

1.实例变量,依赖于实例对象而存在。访问实例变量的时候,必须通过实例对象来访问

2.实例变量,在内存中可以有多份(内存中创建了多少实例对象,就有多少实例变量)

每个实例对象的实例变量互不影响

3.静态变量,不依赖于对象而存在。直接与类关联,可以通过类名来访问

4.静态变量,在内存中只有一份,被所有实例对象共享。

static的使用场景

1)static修饰的变量叫静态变量

2)static修饰的方法叫静态方法

3)static修饰的代码块叫静态代码块

静态变量/方法,与实例变量/方法

实例方法可以访问静态变量/方法;

静态方法不可以访问实例变量/方法,可以访问其他静态变量/方法;

static的特点

所有的静态(静态变量和静态方法)都属于类 (全局)

  • 静态属性和静态方法可以直接通过类名.静态属性 类名.静态方法() 来使用,这是推荐的方式。当然也可以通过实例对象来访问静态属性和静态方法,但是这种做法不推荐
  • 静态方法中,只能访问静态属性和其它静态方法。不能访问实例属性和实例方法
  • 实例方法中,可以访问静态属性和静态方法,也可以方法实例属性和实例方法
  • 静态代码块,在类被加载时自动调用。

4.String

String 字符串,引用数据类型;

String的特点:

        1.字符串不可变;
        2.每一个字符串都是String类的实例对象;
        3.因为字符串不可变所以字符串是共享的;
        4.字符串的效果上相当于一个char[] 数组,但是它的底层原理是byte[] 字节数组。

String字符串的两种创建方法:
1)通过""直接创建:String a = "ABC";

2)通过构造方法创建 String a = new String("ABC"); 

5.jvm的内存图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值