ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java关键字第三集一个静态一个包四访问权限修饰符一起学

2020-11-27 21:57:07  阅读:198  来源: 互联网

标签:第三集 调用 java Chinese 修饰符 访问 static public 属性


静态static,包package,四个权限修饰符

文章目录

一、静态static

static可以用来修饰类的属性,方法,代码块,内部类。

重点:

随着类的加载而加载
优先于对象存在
修饰的成员,被所有对象所共享
可不创建对象,直接被类调用

1.被对象调用

  • static方法可以使用对象调用,也可以直接用类名调用,建议用类名直接调用

  • 静态属性是类的所有对象共享的,
    即不管创建了多少个对象,
    静态属性在内存中只有一个。
    eg:

  • 下面代码中在NextChinese类中可以看出在没有建立对象的情况下还可以使用类来调用静态属性,说明static优先于对象存在,但调用的时候还是建议用类来调用.

  • 下面代码中在NextChinese类中可以看出在建立对象后,无论创建了几个对象后输出的count都是不变的,说明静态属性的类是所有对象贡献的,且只有一个.

2.被方法调用

  • 在static方法内部只能访问类的static属性,不能访问类的非static属性,static属性先加载。
  • 代码块在类中声明,类似一个没有名称的方法体(代码块),代码块分实例块和静态块
  • 静态块:类加载时自动调用,仅一次,与是否创建对象无关。
    static {
    //任何符合语法的Java代码
    }
  • 每次在加载类的时候static都会优先执行
    代码如下(示例):
public class NextChinese {
    public static void main(String[] args) {
        Chinese.count = "英国";//static方法可以使用对象调用,也可以直接用类名调用,建议用类名直接调用
        Chinese zs = new Chinese();
        zs.name = "张三";
        zs.age = 9;
        System.out.println(zs.name+"+++"+Chinese.count);
        Chinese ls = new Chinese();
        ls.name = "李四";
        ls.age = 9;
        System.out.println(ls.name+"+++"+Chinese.count);
        Chinese.abc();
        Chinese.abc();
        Chinese.abc();
    }
}


public class Chinese {
    String name;
    int age;
    static String count = "中国";//随着类的加载而加载 优先于对象存在 ;修饰的成员,被所有对象所共享 ;可不创建对象,直接被类调用
    static int test = 50;
    public static void abc(){//在static方法内部只能访问类的static属性,不能访问类的非static属性,static属性先加载
        test = test - 1;
        System.out.println(test);
    }
}

二、包package

  • 包(package)的命名规范:
    在包名中,可以使用.号来区分包的级别;包名一般情况下是小写
    第一级 指该项目的类型,如com,org,gov等,
    第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei等
    第三级 指项目的名称,如:bcms,oa,erp,cms等
    第四级 指项目模块的名称,如:bean,action,exception等

  • 包可以更好得管理逻辑相关的类,可以控制不同包之间的访问权限
    导入外部包的类,关键字“import”(import后面会讲)

三、访问权限修饰符

1.public

  • public :公共权限 修饰类、属性、方法。可以被任意类访问
  • public在a包b类访问c包d类都可以访问

2.protected

  • protected:受保护的权限 修饰属性、方法。
  • protected在a包b类访问c包d类必须创建一个子类才可实现

3.(default)

  • default:同包权限(包权限) 修饰类、属性、方法。只能被同包的类访问
  • default只能同包a类访问同包b类

4.private

  • private:私有权限 修饰属性、方法。 只能在本类中访问
  • private只能同类a访问同类a

5.区别

  • public和protected可以不同包访问
    (default)和private必须同包访问
  • 可以打个比方
    public就是元帅,可以统领百万雄师
    protected就是将军,只能调用自己手下以及与自己同等职位的部下(必须是他儿子)
    (default)就是无后代的将军,只能调用自己的手下
    private就是普通士兵,只能调用自己
    在这里插入图片描述

标签:第三集,调用,java,Chinese,修饰符,访问,static,public,属性
来源: https://blog.csdn.net/m0_52540692/article/details/110245967

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有