关于Java中修饰符的总结(fina除外)

所属分类: 软件编程 / java 阅读数: 44
收藏 0 赞 0 分享

public/protected/private

public表示公开,private表示私有,protected表示保护,什么都不写表示默认default。

方法:

public protected default private

√ √ √ √ 同一类中

√ √ √ × 同一包中

√ √ × × 子类中

√ × × × 不同包中

成员变量:

考虑的安全性和健壮性的问题,成员变量一般为私有,并对外提供一些public的方法修改成员变量,在修改的方法中对输入进行判断和控制。

Private成员变量只能在类的内部使用。Public的成员变量可以在类的外部使用。

类:

类的权限修饰符只有不加和public两种。不加表示只有同一个包的类可以访问,public类所有的其他类都可以访问。

Static

意为静态,用于修饰成员变量、方法、代码块。

静态成员变量

静态成员变量随着类的加载而加载,多个对象共享该静态成员变量。看如下代码:

静态方法

当修饰方法的时候,这个方法随着类的加载而加载,直接通过类名来调用。很多工具类中的方法都是静态的,直接通过“类名.方法名”调用。不过静态方法中不能使用非静态成员变量和非静态方法。

静态代码块

静态代码块(java的类在产生对象的时候,在调用构造方法的时候,还会调用构造代码块)。

请看下列代码(证明构造方法、构造语句、静态构造语句运行的先后顺序):

需要注意的是:

(1)静态方法不能调用非静态方法, 静态的方法是在构造该类时加载的,类加载时会加载静态的方法;此时非静态方法还没有加载,类初始化后才加载非静态方法;所以静态方法不能调用非静态方法。通过在静态方法的内部创建对象(或形式参数来传递的对象)来间接访问是完全可以的。

(2)java中的main方法必须写成static的,因为,在类加载时无法创建对象,静态方法可以不通过对象调用。所以在类加载时就可以通过main方法入口来运行程序。

注意:父类中是静态方法,子类中不能覆盖为非静态方法。在符合覆盖规则的前提下,在父子类中,父类中的静态方法可以被子类中的静态方法覆盖,但是没有多态。

一个类在什么时候被加载?时机 (延迟加载,能不加载就不加载

(1)new 一个对象的时候,加载

这个很好理解,不解释了。(2)没有创建对象,访问类中静态成员(方法和属性)

(3)声明一个类的引用,不加载(4)创建子类,先加载父类,再加载子类

(5)父类中的公开静态方法,子类继承,使用子类的类名调用此方法,加载父类

Abstract

这个修饰符表示抽象,可以用在方法和类前面。

抽象方法表示,类应该具备此功能,但不同的子类应该有不同的实现方式,所以没有定义具体如何做。具体如何做由子类自己实现。子类在实现所有抽象方法后才能new对象。

如有类的内部有抽象方法,则类也必须是抽象的。抽象类不能直接new对象。抽象类中可以有非抽象方法。

以上就是小编为大家带来的关于Java中修饰符的总结(fina除外)的全部内容了,希望对大家有所帮助,多多支持脚本之家~

更多精彩内容其他人还在看

Java的面向对象编程基本概念学习笔记整理

这篇文章主要介绍了Java的面向对象编程基本概念学习笔记整理,包括类与方法以及多态等支持面向对象语言中的重要特点,需要的朋友可以参考下
收藏 0 赞 0 分享

Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法

这篇文章主要介绍了Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法 的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

基于Java实现杨辉三角 LeetCode Pascal's Triangle

这篇文章主要介绍了基于Java实现杨辉三角 LeetCode Pascal's Triangle的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Java中Spring获取bean方法小结

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中获取Spring配置的bean呢?下面通过本文给大家介绍Java中Spring获取bean方法小结,对spring获取bean方法相关知识感兴趣的朋友一起学习吧
收藏 0 赞 0 分享

如何计算Java对象占用了多少空间?

在Java中没有sizeof运算符,所以没办法知道一个对象到底占用了多大的空间,但是在分配对象的时候会有一些基本的规则,我们根据这些规则大致能判断出来对象大小,需要的朋友可以参考下
收藏 0 赞 0 分享

剖析Java中的事件处理与异常处理机制

这篇文章主要介绍了Java中的事件处理与异常处理机制,讲解Java是如何对事件或者异常作出响应以及定义异常的一些方法,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Java的Struts2框架的结构及其数据转移方式

这篇文章主要介绍了详解Java的Struts2框架的结构及其数据转移方式,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
收藏 0 赞 0 分享

Java封装好的mail包发送电子邮件的类

本文给大家分享了2个java封装好的mail包发送电子邮件的类,并附上使用方法,小伙伴们可以根据自己的需求自由选择。
收藏 0 赞 0 分享

在Java的Struts中判断是否调用AJAX及用拦截器对其优化

这篇文章主要介绍了在Java的Struts中判断是否调用AJAX及用拦截器对其优化的方法,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下
收藏 0 赞 0 分享

java多线程Future和Callable类示例分享

JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。今天我们就来研究下Future和Callab
收藏 0 赞 0 分享
查看更多