当前位置: 首页 > wzjs >正文

福田网站建设龙岗网站建设罗湖网站建设罗湖网站建设口碑好的宜昌网站建设

福田网站建设龙岗网站建设罗湖网站建设罗湖网站建设,口碑好的宜昌网站建设,敬请期待前一句,大同市住房城乡建设网站在Java编程语言中,static关键字是非常重要的修饰符,可以用于多种不同的地方。可用来修饰变量、方法、代码块以及类。 1.静态变量 定义:静态变量属于类本身,而不是类的任何特定实例(new出来的对象)。 特点&a…

在Java编程语言中,static关键字是非常重要的修饰符,可以用于多种不同的地方。可用来修饰变量、方法、代码块以及类。


1.静态变量


定义:静态变量属于类本身,而不是类的任何特定实例(new出来的对象)。
特点:
1.所有实例共享同一静态变量。
2.在类加载到内存时就被初始化,而不是在创建对象的时候。
3.常用于管理类的全局状态或作为常量仓库(例如public static final修饰的常量)。

2 静态方法:


定义:静态方法同样属于类,而非类的实例。
特点:
1.可以在不创建类的实例的情况下调用。
2.不能访问类的实例变量或实例方法,它们只能访问其他的静态成员。
3.常用于工具类的方法,例如Math.sqrt()或Collections.sort()。

3 静态代码块:


定义:用于初始化类的静态变量。
特点:
1.当类被Java虚拟机加载并初始化时执行。
2.通常用于执行静态变量的复杂初始化。

4.静态内部类:


定义:在一个类的内部定义的静态类。
特点:
1.可以不依赖于外部类的实例而独立存在。
2.可以访问外部类的所有静态成员,但不能直接访问外部类的实例成员。
3.常用于当内部类的行为不应依赖于外部类的实例时。

这里有两段代码,看看有什么不同

public class OuterClass {//静态内部类public static class inClass{private int value;public inClass(int value) {this.value =value;}public void display() {System.out.println("Value" +value);}}}class Test{public static void main(String[] args) {OuterClass.inClass t1 = new OuterClass.inClass(5);t1.display();}}

public class OuterClass {//静态内部类public static class inClass{private int value;public inClass(int value) {this.value =value;}public void display() {System.out.println("Value" +value);}}public static void main(String[] args) {OuterClass.inClass t1 = new inClass(5);t1.display();}
}

思考

我在第二段代码创建t1对象的时候没有选择new OuterClass.inClass(5),我很好奇因为按照规范应该会报错,于是我去查了查。

其实背后是 Java 编译器“容忍性”的一个体现。

乍一看像是错误的,因为在 new inClass(5) 这里省略了前缀 OuterClass.,但编译器居然没有报错。

为什么没报错?

因为你写的是在 OuterClass 的代码内部,也就是说你在 main 方法中就处在 OuterClass 的作用域里。Java 编译器允许你在这个作用域中省略 OuterClass. 这个前缀。举个类似的例子:

public class A {public static class B {public void hello() {System.out.println("Hi");}}public static void main(String[] args) {B b = new B();  // 不写 A.B 也没问题b.hello();}
}

}
这个代码能正常运行,因为在 A 的作用域里,B 是可见的。

那如果你在类外部使用呢?
如果你尝试在另一个类中写:

public class Test {public static void main(String[] args) {inClass t = new inClass(5);  // 这就不行了!}
}

这时候就一定要写成:

OuterClass.inClass t = new OuterClass.inClass(5);

否则编译器就会报错:cannot find symbol

有没有突然觉得 Java 编译器其实还是挺“贴心”的 😄?

http://www.dtcms.com/wzjs/806343.html

相关文章:

  • 微网站怎么用wordpress 伪静态 效果
  • 品牌做网站网站模仿算侵权吗
  • 电商网站都是用什么做的wordpress订阅表格代码
  • 网站怎么建设及推广广东省住房建设厅网站首页
  • 网站的信息架构外贸自建站 源码
  • 中国民政网站医院标准化建设aspcms手机网站怎么做
  • 在哪里可以学做网站网站怎么推广引流
  • 江苏中南建设投标网站推广系统建站
  • 互动网站建设特点建筑网站资料排行榜
  • 自适应网站开发网站设计策划书3000字
  • 卓业网站建设浅谈天猫的电子商务网站建设
  • 网站制作公司的swot分析手机商城手机网站建设多少钱
  • 合肥做网站公司有哪些怎么看网站是不是php语言做的
  • 网站开发技术与应用试验报告4王烨演员
  • 请公司建网站软文广告经典案例300
  • 临潼网站建设网站设置关键字
  • 网站建设价格怎么算网站备案密码
  • 做淘宝图的素材搜索网站微信官网小程序注册
  • 南宁公司建站模板黑龙江省生产建设兵团知青网站
  • 网站开发年度总结工作制作手工作品
  • 专业企业网站建设公司价格北京科技公司排名
  • 优动网站重庆建设工程信息网怎么录入备案
  • 山东省城乡建设部网站六安网站制作金狮
  • 用什么程序做视频网站大连省建设厅网站
  • 优秀网站psd专业群建设方案
  • 做用户运营应该关注哪些网站做跨境电商网站
  • 一个一起做网站精品源码网
  • 网站开发视频代码取消网站备案制度
  • 百度建立自己的网站软件开发模型包括
  • 购物网站的英文wordpress+百度云图安装