章节目录

  • 1. 访问修饰符
    • 1.1 public
    • 1.2 protected
    • 1.3 private
    • 1.4 defaulted
  • 2. static
    • 2.1 静态变量
    • 2.2 静态方法
    • 2.3 静态代码块
  • 3. final

1. 访问修饰符


变量和方法的修饰字 public、protected、defaulted、private

1.1 public

任何其它类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法
只有在使用 public 访问修饰符时,类的成员才可被同一包或不同包中的所有类访问。
也就是说,public 访问修饰符可以使类的特性公用于任何类。

1.2 protected

如果一个类中变量或方法有修饰字 protected,同一类,同一包可以使用。不同包的类要使用,必须是该类的子类可以存取变量或调用。
如果希望一个成员在当前包外可见,但仅仅是成员所在类的子类直接可见,就要使用 protected 修饰该成员。

1.3 private

private 访问修饰符是限制性最大的一种访问修饰符。
被声明为 private 的成员只能被此类中的其他成员访问,不能被类外看到。
继承体系结构中最高级别的类决不会被声明为 private 类。

1.4 defaulted

类是缺省的,该类具有包访问权限,只能被同一包中的其它类访问

2. static

用 static 修饰符修饰,可以是变量、方法或代码块。
类中的静态变量、方法或代码块属于类,而不属于某个特定的对象。
类的静态成员可以与类的名称一起使用,而无需创建类的对象。
静态变量或方法也称为类变量或类方法。

2.1 静态变量

public class TestDemo {static int COUNT = 100;
}
public class Test {public static void main(String[] args) {System.out.println(TestDemo.COUNT);//可以直接通过类名进行调用,推荐使用TestDemo ts = new TestDemo();System.out.println(ts.COUNT);//也可以通过某一对象尽心调用}
}

2.2 静态方法

与静态方法相关的几个要点:
– 类的静态方法只能访问其他的静态成员
– 静态方法没有 this
– 静态方法不能被覆盖为非静态方法

public class TestDemo {static int COUNT = 100;int i = 10;public static void say() {// System.out.println(i);//静态方法中只能访问静态修饰的属性和方法System.out.println(COUNT);}// main方法本身就是一个静态方法,是一个特殊的静态方法public static void main(String[] args) {say();// 静态方法中可以访问静态方法}   }

2.3 静态代码块

形式:static { ……}
如果需要通过计算来初始化静态变量,可以声明一个静态块。
静态块仅在该类被加载时执行一次。

public class TestDemo {private static int COUNT = 100;static {System.out.println(COUNT);}public static void main(String[] args) {System.out.println(COUNT);}
}

java类属性和对象属性的初始化顺序:

  1. 首先找到类中的所有静态声明语句(不管位置在哪),把他们初始化为缺省值;
  2. 然后再按照书写顺序依次处理每一个static的东西;
  3. 把对象属性初始化为缺省值;
  4. 按照书写顺序依次处理每一个对象属性的初始化语句最后执行构造函数;
public class Test {// 代码块{System.out.println("3");}{System.out.println("4");}static {System.out.println("1");}static {System.out.println("2");}public Test() {System.out.println("构造函数");}public static void main(String[] args) {new Test();}
}

输出:1.2.3.4.构造函数

3. final

final 关键字:final 修饰符可应用于类、方法和变量。
1、final 在应用于类、方法和变量时意义是不同的,但本质是一样的:final 表示不可改变。
2、声明为 final 的类不能被继承。
3、声明的方法不能被重写,如果一个类是 final 类,那么它的所有方法都隐式的是 final 方法。
4、声明的变量必须赋初值,它实质上就是一个常量。

老鲸鱼第4050楼▼
人生要尽全力度过每一关,不管遇到什么困难,都不可轻言放弃。2016.12.23

Java基础教程【第八章:访问修饰符】相关推荐

  1. java中有哪几种访问修饰符_Java语言中有4种访问修饰符

    转载:http://wuhaidong.iteye.com/blog/851754 Java语言中有4种访问修饰符 在Java语言中有4中访问修饰符:package(默认).private.publi ...

  2. java进阶之匿名内部类,访问修饰符,包

    文章目录 一.形式参数和返回值 二.包 1.包 2.导包 三.权限修饰符 1.权限修饰符: 2.常见的权限修饰符 四.内部类 一.形式参数和返回值 (1)形式参数: 类名:需要该类的对象 抽象类名:需 ...

  3. Java中的四种访问修饰符:public、default、protect和private

    前言 Java中有四种访问修饰符用于控制类.接口.变量和方法的封装程度.这四种修饰符分别为: private 私有的,类可见性 package/friendly/default 包级别的/友好的/默认 ...

  4. JAVA入门级教学之(访问修饰符权限控制)

    访问控制权限修饰符: 1.访问控制权限修饰符来控制元素的访问范围 public 表示公开的,在任何位置都可以访问 protected 同包.本类.子类(出了包如果是子类没问题) 缺省 同包.本类(不能 ...

  5. java成员访问修饰符,如何使用java反射查找成员的访问修饰符

    Find the access modifier of a member using java reflection private final static long serialId = 1L; ...

  6. java中访问修饰符_Java中的非访问修饰符是什么?

    java中访问修饰符 Java非访问修饰符 (Java non access modifiers) We have 7 non-access modifiers in Java. The name o ...

  7. java中有哪些访问修饰符_java中四种访问修饰符

    Java中的四种访问修饰符:public.protected.default(无修饰符,默认).private. 四种修饰符可修饰的成分(类.方法.成员变量) public protected def ...

  8. Java基础:Java中四种访问修饰符

    一.背景. 这篇文章主要介绍了Java中四种访问修饰符详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下.放假在家里休息,闲来无事,想 ...

  9. java访问修饰符详解——学java,零基础不怕,不只要理论,更要实践+项目,a href=http://www.bjweixin.com太原维信科技提供 /a...

    java访问修饰符详解--学java,零基础不怕,不只要理论,更要实践+项目 <a href=http://www.bjweixin.com>太原维信科技提供 </a> pub ...

最新文章

  1. ubuntu18 搜狗输入法 解决版
  2. windows-台式机添加硬盘后如何加载、格式化新的分区
  3. oracle如何清空一个用户下的所有表中的数据?
  4. 说实话,电脑存储空间大了之后对于你的能力有很大的要求
  5. 初学者也能看懂的 Vue3 源码中那些实用的基础工具函数
  6. com.autonavi.AMapLocationThread (13): Exception: threading violation: expected the main thread-iOS
  7. VMware安装Fedora 35 Workstation及使用体验
  8. 用计算机弹清明上河图谱,[TIF超清] 《清明上河图》北宋 张择端 单幅画1.85GB全卷扫描...
  9. hdu1069 最长下降子列
  10. Java计算点的质心_java-矩阵的质心
  11. python高次方程求根公式,Python简单求解高阶方程的数值解
  12. 【千锋Python2205班9.26笔记-day06-列表(一阶段)】
  13. 几何Geometry(2)(曲线和曲面)(笔记)
  14. 自媒体推广应该怎么入手,如何去做
  15. JSP中如何借助response对象实现页面跳转呢?
  16. 安卓app开发方案_「安卓APP开发流程」安卓APP如何开发的?
  17. iOS 疑难杂症 学习笔记
  18. 关于我终于拿捏了C语言结构体那点事 ——超详细的C语言结构体讲解
  19. mysql存储函数声明float_mysql存储float
  20. 如何简单快速搭建自己的云对象存储服务(OSS)

热门文章

  1. TensorFlow使用--MNIST分类学习入门(感知机)
  2. 【超参数寻优】粒子群算法(PSO) 超参数寻优的python实现
  3. html5 viewpor,FileViewPro
  4. Javascript第七章cookie的读取和写入源码第一课
  5. npm install失败的解决方法
  6. linux100台服务器免密,多台Linux服务器之间互相免密登陆,脚本同步免密
  7. php log日志管理,PHP日志LOG类定义与用法示例
  8. cookie helper.php,CookieHelper cook crud 工具类
  9. hash算法_HASH算法简介
  10. python_百文买百鸡问题