java中类与静态类的区别是什么(java 内部类和静态内部类的区别)
老铁们,大家好,相信还有很多朋友对于java中类与静态类的区别是什么和java 内部类和静态内部类的区别的相关问题不太懂,没关系,今天就由我来为大家分享分享java中类与静态类的区别是什么以及java 内部类和静态内部类的区别的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
请问java 单例类 与 静态类 有何不同
它们有自己的作用,灵活运用即可
简单说明:
单例类
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
在很多操作中,比如建立目录数据库连接都需要这样的单线程操作。
最显而易见的好处是,节约开销,比如数据库链接单例的好处是,每次你只要去获取那个数据库的实例就好,不用每次去创建一个实例。
静态类
在一个类中创建另外一个类,叫做成员内部类。这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的。由于静态的内部类在定义、使用的时候会有种种的限制。所以在实际工作中用到的并不多。
在开发过程中,内部类中使用的最多的还是非静态地成员内部类。不过在特定的情况下,静态内部类也能够发挥其独特的作用。
java中静态内部类和内部类的区别
和普通的类一样,内部类也可以有静态的。不过和非静态内部类相比,区别就在于静态内部类没有了指向外部的引用。这实际上和C++中的嵌套类很相像了,Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用这一点上,当然从设计的角度以及以它一些细节来讲还有区别。
除此之外,在任何非静态内部类中,都不能有静态数据,静态方法或者又一个静态内部类(内部类的嵌套可以不止一层)。不过静态内部类中却可以拥有这一切。
抽象类与静态类的区别
抽象类不能实例化。一般用来构造基类。
静态类不管实例化多少个,调用的都是最初实例化的那个。一般做程序中的全局变量(唯一实例)时。
关于用类名来调用静态成员函数,不管是哪个类(抽象类,静态类,一般的类),只要是静态成员函数,都可以写类名来调用。
java 内部类和静态内部类的区别
publicclass内部类和静态内部类
{
publicstaticvoidmain(String[]args)
{
System.out.println("\n\t\t==========java内部类和静态内部类的区别!==========\n");
init();
}//初始化!
privatestaticvoidinit()
{
//--------------访问区别和创建对象区别-------------
//内部类,非静态的!
Test.Aa=newTest().newA();
a.show();
//访问内部类,静态的!
Test.Bb=newTest.B();
b.show();
//外部类的方法访问内部类的属性,注意看初始化时间的区别!
Testt=newTest();
t.show();
}
}
//这个父类是我想证明,内部静态类初始化在,外部类的成员之前,才建立的!
//因为我实在想不出来其他办法!
classFu
{
Fu(){show();}
voidshow()
{
}
}
classTestextendsFu
{
privateinta=10;
privateintb=88;
//内部类,非静态类!
classA
{
voidshow()
{
System.out.println("普通内部类!a==="+a);
}
}
//静态内部类!
staticclassB
{
staticintsum=22;
//内部静态类的,静态方法,特点就是出现了局限性!访问外部成员的时候,必须访问静态才可以!
staticvoidshow()
{
//System.out.println("静态内部类!"+a);错误:无法从静态上下文中引用非静态变量a
System.out.println("静态内部类!----------"+sum++);
}
}
//show
voidshow()
{
System.out.println("a==>"+a+"------sum==>"+B.sum);
}
}
//看截图吧,创建对象,区别,和访问的区别,都不一样!初始化时间也不一样!
OK,关于java中类与静态类的区别是什么和java 内部类和静态内部类的区别的内容到此结束了,希望对大家有所帮助。