博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java修饰符
阅读量:5158 次
发布时间:2019-06-13

本文共 1817 字,大约阅读时间需要 6 分钟。

一、访问修饰符

  1.public公共;使用对象:类、接口、变量、方法;

  2.default默认;使用对象:类、接口、变量、方法;

  3.private私有;使用对象:成员变量,成员函数;

    注释:只在本类中有效;不能修饰类;

  4.protected保护;使用对象:变量、方法。

    注意:不能修饰类(外部类)。

    注释:保护权限,不同包之间只有继承了的子类才能访问;

    

二、非访问修饰符-final:

 

  final:可以修饰:类,变量,函数;

  1.修饰类:不可以被继承;

  2.修饰方法(函数)不可以被重写

  3.修饰的变量:常量,有且只能被赋值一次;命名都用大写字母和_下划线;

    (1)局部常量:初始化;

    (2)成员常量:初始化,动态代码块,静态代码块;

    (3)静态常量:初始化,静态代码块;

    (4)基本数据类型常量:值不可变;

    (5)引用数据类型:地址不可变;//final A a=new A()

  4.定义静态常量类Constants.java;用于解决魔鬼常量;

/** * 常量类 */public class Constants {    /**在线*/    public static final String STATE_ONLINE="1";    /**离线*/    public static final String STATE_OFFLINE="2";}

  5.用接口代替类存储常量:

 

/** * 常量类 */public interface Constants {    /**在线*/    String STATE_ONLINE="1";    /**离线*/    String STATE_OFFLINE="2";}

  6.枚举:控制传入得值的范围;

public enum Week {    one,two,three,four,five,six,seven;}

 

  调用:Week.one

三、非访问修饰符-static:

 

 

1.基本原理:

1.用于修饰:成员变量,成员函数;

2.新建对象时在内存中不会重复开辟空间,被对象所共享;

3.用法:1)可以被对象调用;2)还可以直接被类名调用;类名.静态成员;

2.静态特点:

1.随类的加载而加载;(类似js预编译,在预编译时已经加载,随着类的消失而消失)

2.优先于对象存在;

3.被所有对象所共享;

4.可以直接被类调用;

3.实例变量和类变量的区别:

  类变量:独立于方法之外的变量,用 static 修饰。

  实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰。

  局部变量:类的方法中的变量。

 

 

  1.存放位置:

    类变量:随着类的加载而存放于方法区中;

    实例变量:随着对象的建立而存在于堆内存中;

  2.生命周期:

    类变量:生命周期长,随着的消失而消失;

    实例变量:生命周期短,随着对象的消失而消失;

4.静态使用注意事项:

  1.静态方法只能访问静态变量和静态方法,不能访问非静态变量和实例方法;

      非静态方法可以访问静态和非静态;

  2.静态方法中不可以定义thissuper关键字;

      因为静态优先于对象存在;

  3.静态方法可以继承,不能重写,没有多态;(即在子类中重写相同的方法,其实就是各自归各自独有的方法)

5.什么时候使用静态:

  静态变量使用:当对象中存在共享数据时;

  静态函数使用:当方法没有访问非静态数据时,可以定义为静态方法;

6.静态代码块:

  (1)格式:static{}

  (2)执行时机:类首次被加载时执行,且只执行一次;

7.类加载时机:

  (1)创建对象;

  (2)创建子类对象;

  (3)访问静态属性;

  (4)调用静态方法;

  (5Class.forName("全限定名")//包名+类名;

8.动态代码块:

  (1)格式:{}

  (2)执行时机:在创建对象实例后,且构造函数执行执行一次;且多次创建实例会多次执行;

    //一般不用,用构造函数代替;

转载于:https://www.cnblogs.com/Tractors/p/11223107.html

你可能感兴趣的文章
java并发编程(10)Fork/Join
查看>>
#程序员健康 如何解救你的鼠标手
查看>>
linux下maven的安装
查看>>
win10安装express遇到的问题。
查看>>
Corosync 配置描述
查看>>
JAVA中类、实例与Class对象
查看>>
svn_linux + apache 实现网页访问svn
查看>>
leetcode 58. length of last word
查看>>
C++随笔(2)
查看>>
周浩晖 - 鬼望坡(2014年11月25日)
查看>>
servlet+jdbc+fckeditor网络留言板
查看>>
JavaScript 对象
查看>>
Java多线程中的join()方法
查看>>
中国的南方人和北方人有什么区别?总算说透了!
查看>>
三、运算符和保留字、内建函数
查看>>
【ABAP系列】SAP ABAP同时显示多个ALV的方法
查看>>
sf2-野火兔
查看>>
(转)Android SlidingTabLayout定制分割线和指示条颜色
查看>>
Sum Root to Leaf Numbers
查看>>
twitter.common.concurrent deadline and defer
查看>>