本文目录一览:
- java里面不允许声明类为静态的吗?
- [Java静态类(static class)是什么意思?](#Java静态类(static class)是什么意思?)
- [Java 静态内部类作用?](#Java 静态内部类作用?)
- [java 静态类是什么意思 有什么特点](#java 静态类是什么意思 有什么特点)
- java中静态类和动态类的区别的什么?
java里面不允许声明类为静态的吗?
不可以声明类为静态类的。 解释:静态类是没有实际意义的,而且运行初始化还要占用大量内存,而且假如有静态类,不能被重写,不能被创建,没啥实际意义。 Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。 用Java实现的HotJava浏览器显示了Java的魅力:跨平台、动态Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器均支持Javaapplet。另一方面,Java技术也不断更新。Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
Java静态类(static class)是什么意思?
java一半不用static 修饰类,除非这个类是内部类,
在定义内部类的时候,可以在其前面加上一个权限修饰符static
。此时这个内部类就变为了静态内部类。不过由于种种的原因,如使用上的限制等等因素(具体的使用限制,笔者在下面的内容中会详细阐述),在实际工作中用的并不是很多。但是并不是说其没有价值。在某些特殊的情况下,少了这个静态内部类还真是不行。如在进行代码程序测试的时候,如果在每一个Java源文件中都设置一个主方法(主方法是某个应用程序的入口,必须具有),那么会出现很多额外的代码。而且最主要的是这段主程序的代码对于Java文件来说,只是一个形式,其本身并不需要这种主方法。但是少了这个主方法又是万万不行的。在这种情况下,就可以将主方法写入到静态内部类中,从而不用为每个Java源文件都设置一个类似的主方法。这对于代码测试是非常有用的。
Java 静态内部类作用?
- 变值权限修饰作用,在定义内部类的时候,可以在其前面加上一个权限修饰符
static
。此时这个内部类就变为了静态内部类。 - 在某些特殊的情况下,少了这个静态内部类还真是不行。如在进行代码程序测试的时候,如果在每一个Java源文件中都设置一个主方法(主方法是某个应用程序的入口,必须具有),那么会出现很多额外的代码。
- 最主要的是这段主程序的代码对于Java文件来说,只是一个形式,其本身并不需要这种主方法。但是少了这个主方法又是万万不行的。在这种情况下,就可以将主方法写入到静态内部类中,从而不用为每个Java源文件都设置一个类似的主方法。 这对于代码测试是非常有用的。在一些中大型的应用程序开发中,则是一个常用的技术手段。
例如:
对于两个类,拥有相同的方法:
class People {
run();
}
interface Machine {
run();
}
此时有一个Robot类:
class Robot extends People implements Machine
此时run()
不可直接实现。
interface Machine {
void run();
}
class Person {
void run() {
System.out.println("run");
}
}
class Robot extends Person {
private class MachineHeart implements Machine {
public void run() {
System.out.println("heart run");
}
}
public void run() {
System.out.println("Robot run");
}
Machine getMachine() {
return new MachineHeart();
}
}
class Test {
public static void main(String[] args) {
Robot robot = new Robot();
Machine m = robot.getMachine();
m.run();
robot.run();
}
}
参考资料来源:百度百科-静态内部类
java 静态类是什么意思 有什么特点
java没有直接的静态类这种东西,一个类可以为static
的情况只是它作为另一个类的成员,static
表明它可以不用建立实例被访问而已,这样的内部类完全没有内部类的特点。
- 内部类可以访问所在外部类的成员变量和方法,而静态内部类却不能。
- 内部类可以使用
Outter.this
作为外部类引用,但静态内部类不能使用。 - 静态内部类就如同外部类的一个静态成员,它只能访问外部类的静态成员和静态方法。
- 在外部类外必须使用
Outter.Inner
外部类名和内部类名都要使用,楼上所说的不需要建立对象,指的是不需要建立外部类实例, 例如:
BigOuter.Nested n = new BigOuter.Nested();
java中静态类和动态类的区别的什么?
区别如下:
static
表示静态的,从始至终只获得一块内存空间。而且这块空间的资源还具有“全局性”,就是说所有的成员都可以无条件引用。另外,static
修饰的不用程序调用,只要该类被执行,static
修饰的也被执行。
如最常见的:
public static void main(){}
又如:
static int a;
那么所有的成员都可以引用a
。
final
表示最终的,它修饰的类不能有子类。它修饰的变量是不可变的常数,所以final
的变量要立刻赋值。例如:
class final A {}
类A就不能被别的类继承;
final String a = "abc";
那么a
永远只能是abc
。
final static String a = "abc"
那么a
不但是一个常数,还是一个全局常数。
java作用:
- 网络应用程序开发,例如:网上银行(中国银行、建设银行、工商银行的网上银行都是用J2EE开发出来的,你看看它的网银网页的后缀名JSP就知道),网页游戏等。
- 企业管理软件,现在很流行的B/S(浏览器/服务器)架构管理程序很多就是用J2EE开发的。
- 手机游戏,你看到那些手机游戏安装文件的后缀名
.jar
了吗?就是用JAVA开发出来的标志。开发这些东西一般用JAVA ME(J2ME)。 - 嵌入式开发,例如给电视机顶盒、小型家电写程序。