static、final修饰符、内部类

java中的String类(1.8) 这里写目录标题Array是什么?Array的属性和方法 Array是什么? The {@code Array} class provides static methods to dynamically create and access Java arrays. Array类提供静态方法来动态创建和访问 Java 数组。 Array的属性和方法 ... 阅读详情

static修饰符:
static修饰符能够与属性、方法和内部类一起使用,表示静态的。类中的静态变量和静态方法能够与类名一起使用,不需要创建一个类的对象来访问该类的静态成员。

class StaticText{
    //静态变量
    static int i=47;
    //静态方法
    static void echo(){
        System.out.println("There is a Static Method");
     }
    //构造函数
    StaticText(){
        System.out.println("There is a Constructor");
    }
    //静态域
    static {
        System.out.println("There is a static block");
    }

}
public class Text { 
    public static void main(String[] args) {
        StaticText A = new StaticText();
        StaticText B = new StaticText();
        //A.i和B.i指向同一内存空间
        System.out.println(A.i==B.i);
        A.i++;
        //此时还是有A.i==B.i
        System.out.println(B.i);
        //使用类名访问时首选方法,这不仅仅是因为它强调了变量的static结构,还为编译器进行优化提供了更好的机会
        System.out.println(StaticText.i);
    }
}

运行结果为:
There is a static block
There is a Constructor
There is a Constructor
true
true
48

static属性的内存分配:一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。

静态初始器——静态块 : 静态初始器是一个存在与类中方法外面的静态块,仅仅在类装载的时候执行一次,通常用来初始化静态的类属性。

static的变量是在类装载的时候就会被初始化,即, 只要类被装载,不管是否使用了,都会被初始化。

static的基本规则:

  • 一个类的静态方法只能访问静态属性;
  • 一个类的静态方法不能直接调用非静态方法;
  • 如访问控制权限允许,static属性和方法可以使用对象名加“.”的方式调用,也可以使用实例加“.”的方式调用;
  • 静态方法中不存在当前对象,因而不能使用this,也不能使用super;
  • 静态方法不能被非静态方法覆盖;
  • 构造方法不允许声明为static的。

尽管当static作用于某个字段时,肯定会改变数据创建的方式(因为static字段对于每一个类来说只有一份存储空间,而非static字段则是对每个对象有一个存储空间)。但是static作用于某个方法时,差别就没有那么大。static方法的一个重要作用就是在不创建任何对象的前提下就可以通过类名来调用它。


final修饰符
在Java声明类、属性和方法时,可以使用关键字final来修饰,final所标记的成分具有终态的特征,表示最终的意思。

final修饰符的基本规则:

  • final标记的类不能被继承;
  • final标记的方法不能被子类重写;
  • final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次;
  • final标记的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有一次赋值的机会,而且只能在构造方法中显式赋值,然后才能使用;
  • final标记的局部变量可以只声明不赋值,然后再进行一次性的赋值;
  • final一般用于标记那些通用性的功能、实现方式或取值不能随意被改变的成分,以避免被误用。

内部类
在一个类(或方法、语句块)的内部定义另一个类,后者称为内部类,有时也称为嵌套类。

内部类的特点:

  • 内部类可以体现逻辑上的从属关系,同时对于其它类可以控制内部类对外不可见等;
  • 外部类的成员变量作用域是整个外部类,包括内部类,但外部类不能访问内部类的private成员;
  • 逻辑上相关的类可以在一起,可以有效地实现信息隐藏 内部类可以直接访问外部类的成员;
  • 编译后,内部类也被编译为单独的类,名称为outclass$inclass的形式。
public class Outer{
    private int size=0;
    class Inner{
      public int counter = 10;
      public void doStuff(){
          size++;
      }
    }
    public static void main(String [] args){
        Outer outer = new Outer();
        Inner inner = outer.new Inner();
        inner.doStuff();
        System.out.println(outer.size);
        System.out.println(inner.counter);   
    }   
}

内部类可以分为四种:1、类级:成员式,有static修饰;2、对象级:成员式,普通,无static修饰;3、本地内部类:局部式;4、匿名级:局部式。

静态变量存放在方法区中。

Comparator接口在java8中的优化 开始 Comparator接口或者Comparable接口在日常开发工作中是经常用到的,用于比较一组数据或者对象,在java8之后,也可以看到在Comparator接口中加入了一些default方法和static方法,这里做一个简单说明。 Comparator接口和Comparable接口 这两个接口首先要做一个简单区别。 Comparable接口 * Lists (and arrays) of... 阅读详情

相关推荐

海康工业相机使用教程

海康工业相机连接电脑教程

qq_43251445的博客 2万+

final关键字及内部类

final关键字

qq_53464269的博客 260

HDMI端口辐射(EMI)超标解决方案

HDMI端口辐射(EMI)超标解决方案 一、HDMI EMC设计要求: 1、HDMI EMC设计原理图 ( 图 一 ) 2、HDMI元件选型及参数说明:(图一所示) a.L510、L511、L512、L513使用专业EMI共模滤波器(普通共模电感寄生电容太大,会导致TMDS差分阻抗匹配测试失败),阻抗值为90Ω~100Ω(两路共模滤波器型号:CMF1210DH900MFR;四路共模滤波器型号:CMF2010DH101MFR), b.U1、U2为排式ESD(ESD排型号:ESD0524PA),越低的结电容

ltqdxl的博客 1万+

【Java入门】final关键字、static关键字、内部类的认识

建数据库表后使用事务回滚出现问题: 以用户转账为例: 数据库建表 create table account( id int PRIMARY KEY auto_increment, username varchar(20), money int); ​​​​​​ java程序(转账程序): import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Stat

CODEING一场空的博客 851

在C++中,NULL和nullptr有什么区别?

这两个定义导致了冲突,C++中的NULL如果和C语言一样也是(void *)0指针,而C++不允许void*隐式转换成其它指针类型,那NULL就无法表示空指针了。因此,使用 nullptr可以增加代码的清晰性,避免类型安全问题。即使在混合C++和C代码时,nullptr也提供了一个明确无误的空指针表示,达到兼容的目的。C++11 引入 nullptr 彻底解决了这些问题,提高语言的安全性、清晰性和现代性。在了解NULL和nullptr背后的故事之后,相信大家以后再也不会用NULL了。

hebhljdx的博客 678

Transformer实战(30)——Transformer注意力机制可视化

在本节中,我们讨论了人工智能面临的最重要问题之一:可解释人工智能 (explainable artificial intelligence, XAI)。随着语言模型的不断发展,可解释性成为一个严峻的问题。本节中,我们从 Transformer 的角度出发,研究了 Transformer 架构中的自注意力机制,尝试通过各种可视化工具理解这些机制的内部过程。

盼小辉丶的博客 2621

final关键字 权限修饰符 内部类

final关键字 权限修饰符 内部类

qq_45259214的博客 614

AI产品经理面试宝典第94天:RAG知识库构建与预处理策略面试指南

本文深入解析RAG知识库构建的核心挑战与预处理策略,涵盖文档格式转换、问答对生成及自动化测试全流程,为AI产品经理提供面试必备的实战方法论与避坑指南,助你精准应对技术深度类问题。

打造全国最全的AI Agent开发知识领域的博客 311

内部类、static、包、访问修饰符、final

内部类、static、包、访问修饰符、final

qq_42182869的博客 573

Codex 调试记录获取完全指南:日志查看、工具调用与实战排查教程

本文主要介绍了Codex 调试记录获取完全指南:日志查看、工具调用与实战排查教程,希望能对使用Codex的同学们有所帮助。 文章目录 1. 背景 2. 实战教程

weixin_43178406的博客 6万+

华为OD机试双机位B卷 - 比赛的冠亚季军 (C++ & Python & JAVA & JS & GO)

华为OD机试双机位B卷 比赛的冠亚季军,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。 华为OD机试 比赛的冠亚季军

qq_45776114的博客 703

[Day13]static、final、匿名对象、内部类、包、修饰符、代码块

1、final-最终   (1)final的特点     final修饰类不可以被继承,但是可以继承其他类     final修饰的方法不可以被覆盖,但父类中没有final修饰方法,子类覆盖后可以加final     final修饰的变量称为常量,这些变量只能赋值一次     引用类型的变量值为对象地址值,地址值不能更改,但是地址内的对象属性可以修改     修改成员变量,需要对创建对...

weixin_30455067的博客 71

用 CL_ABAP_PARALLEL 把批量处理跑进并行对话进程:资源配额、超时治理与可复制的落地模板

文章摘要: CL_ABAP_PARALLEL是SAP推荐的并行处理工具,适用于时间窗口受限的批量任务处理。它基于aRFC/pRFC机制,通过对话进程实现并行,能将小时级任务压缩到分钟级。使用时需注意版本兼容性(可能需要Note 2791374)、资源限制(会话数、进程数)和任务切片策略。提供两种实现方式:继承式(重定义do方法)和接口式(实现IF_ABAP_PARALLEL)。关键参数包括并发控制(p_percentage)、超时设置(p_timeout)和调试开关(p_debug)。最佳实践建议按业务维度

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 240

static、final修饰符、内部类和Java内存分配

转自:http://www.cnblogs.com/langtianya/p/4441206.html static修饰符 static修饰符能够与属性、方法和内部类一起使用,表示静态的。类中的静态变量和静态方法能够与类名一起使用,不需要创建一个类的对象来访问该类的静态成员,所以,static修饰的变量又称作“类变量”。static属性的内存分配 一个类中,一个stati

h655370的博客 1625

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

JavaSE第12篇:面向对象之final、static、修饰符、内部类

核心概述:本篇我们将学习面向对象的其他知识点,其中有关键字final,被它修饰的成员的值不能被修改;关键字static,被它修饰的成员是属于类的并且可以被所有同类型对象共享;权限修饰符,可以控制类成员的访问范围;内部类,方便将存在一定逻辑关系的类组织在一起,又可以对外界隐藏。 第一章:关键字final 1.1-概述(了解) 为什么要学习final关键字 学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写。 那么我们能不能随意的继承API中提供的类,改写其内容呢?显然这是不合适的。

【01编程】的博客 313

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Java面向对象之:final、static、修饰符、内部类

本篇我们将学习面向对象的其他知识点,其中有关键字final,被它修饰的成员的值不能被修改;关键字static,被它修饰的成员是属于类的并且可以被所有同类型对象共享;权限修饰符,可以控制类成员的访问范围;内部类,方便将存在一定逻辑关系的类组织在一起,又可以对外界隐藏。 第一章:关键字final 1.1-概述(了解) 为什么要学习final关键字 学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写。 那么我们能不能随意的继承API中提供的类,改写其内容呢?显然这是不合适的。

230

dim private public static_Java面向对象之:final、static、修饰符、内部类

本篇我们将学习面向对象的其他知识点,其中有关键字final,被它修饰的成员的值不能被修改;关键字static,被它修饰的成员是属于类的并且可以被所有同类型对象共享;权限修饰符,可以控制类成员的访问范围;内部类,方便将存在一定逻辑关系的类组织在一起,又可以对外界隐藏。第一章:关键字final1.1-概述(了解)为什么要学习final关键字学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比...

weixin_39601511的博客 116

Java(七)final、static、匿名内部类以及修饰符的使用细节

文章目录final关键字final的特点static关键字static特点static注意事项定义静态常量匿名对象内部类内部类的分类成员内部类局部内部类匿名内部类代码块局部代码块:构造代码块:静态代码块:特点:不同修饰符使用细节修饰类、方法、变量的修饰符修饰类的修饰符修饰成员变量的修饰符修饰构造方法的修饰符修饰成员方法的修饰符类、抽象类、接口作为参数、返回值 final关键字 继承的出现提高了代码的复用性,并方便开发。但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让

qq_44779847的博客 647

day004 static+final+修饰符权限+内部类

1 static关键字 1.1 概述 static是静态的意思; static主要是用来修饰对象共享的数据.可以修饰变量,也可以修饰方法; 被static修饰变量和方法 是属于类,不属于对象; 成员变量和成员方法是 属于对象,不属于类; 1.2 访问被static修饰的变量和方法 有两种方式: 1.通过对象名访问变量和方法 对象名.静态成员; 例如:Chinese c = new Chinese(); System.out.println(c.country); 不建议使用这种方法时

MustangYL的博客 136

第十章 面向对象【final,static,权限修饰符,内部类】

Java基础 10第十章 面向对象【final,static,权限修饰符,内部类】二、使用步骤1.引入库2.读入数据总结 第十章 面向对象【final,static,权限修饰符,内部类】 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings('igno

LLLlucky_boy的博客 831

c++修改类成员变量的值_Java面向对象之:final、static、修饰符、内部类

本篇我们将学习面向对象的其他知识点,其中有关键字final,被它修饰的成员的值不能被修改;关键字static,被它修饰的成员是属于类的并且可以被所有同类型对象共享;权限修饰符,可以控制类成员的访问范围;内部类,方便将存在一定逻辑关系的类组织在一起,又可以对外界隐藏。第一章:关键字final1.1-概述(了解)为什么要学习final关键字学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比...

weixin_39767121的博客 707

java 内部类 final_JavaSE第12篇:面向对象之final、static、修饰符、内部类

核心概述:本篇我们将学习面向对象的其他知识点,其中有关键字final,被它修饰的成员的值不能被修改;关键字static,被它修饰的成员是属于类的并且可以被所有同类型对象共享;权限修饰符,可以控制类成员的访问范围;内部类,方便将存在一定逻辑关系的类组织在一起,又可以对外界隐藏。第一章:关键字final1.1-概述(了解)为什么要学习final关键字学习了继承后,我们知道,子类可以在父类的基础上改写父...

weixin_39965075的博客 157

static关键、内部类、final、权限修饰符的作用范围

static 关键字:(可用于修饰方法、变量) static 特点: static是静态修饰符,一般修饰成员变量。被static修饰的属于全局共享。被static修饰的成员属于类,(又叫类成员)不属于单个这个类的某个对象。 被static关键字修饰的成员可通过类名.的方式调用。而且,被static修饰的成员是随着类的加载而加载的。 格...

落地太久,准备重新起飞,做一个飞起的菜鸡 315

static、final修饰符、内部类、super

static static修饰符能和属性,方法,内部类一起用,表示静态的,类中的静态变量和静态方法能直接和类名一起使用,不需要新建类对象,static修饰的变量也叫类变量 一个类中,一个static变量只会有一个内存空间,虽然有多个实例,但所有实例中的这个static变量会共享同一个内存空间 static变量在类装载的时候就会被初始化,只要类被装载,不管是否调用了static变量,都会被初始...

somethingstill的博客 486
上一篇: Java跨平台原理
下一篇: HTTP状态码(HTTP Status Code)
SupWTian
博客等级 码龄15年 8粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值