黑马程序员技术交流社区
标题:
静态内部类的小问题
[打印本页]
作者:
明锦添
时间:
2013-3-20 14:40
标题:
静态内部类的小问题
静态内部类中的成员变量和函数是不是都得用静态修饰呢?
作者:
赵晓东
时间:
2013-3-20 15:00
理论上是
作者:
孙晋学
时间:
2013-3-20 15:08
不用,静态类也可以有实例对象,成员函数和成员变量用实例对象调用就可以了
内部类内只要有静态成分就必须也是静态的
作者:
我手心里的宝
时间:
2013-3-20 15:09
不是的
当内部类中定义了静态成员,该内部类必须是static
但是,静态内部类中可以有非静态成员变量和方法
当内部类被static 修饰时,只能访问静态外部类中静态成员
作者:
芦青
时间:
2013-3-20 15:20
1,当内部类被静态修饰时,内部类成员可以不被静态修饰..
2,但当内部类方法被静态修饰时,内部类也必须被静态修饰..
1,例如:
class Wai
{
static class nei
{
void shou()
{
System.out.println("哈哈");
}
}
2例如:
class Wai
{
static class nei
{
static void shou() //内部类成员函数被静态修饰时..内部类也必须被静态所修饰..
{
System.out.println("哈哈");
}
}
作者:
刘国涛
时间:
2013-3-20 15:32
静态内部类中可以有非静态成员,不过当内部类中定义了静态成员,该内部类必须是静态的。
class Outer
{
static class Inner//静态内部类
{
static void function()//静态成员
{
System.out.println("innner :"+x);
}
void show()//非静态成员
{
System.out.println("inner show");
}
}
作者:
MyNameIs520
时间:
2013-3-20 15:36
本帖最后由 吴上波 于 2013-3-20 15:38 编辑
如果一个内部类中有定义static的成员变量或成员方法,那么这个内部类必须定义为静态内部类
并不是静态内部类的所有成员变量或方法都是静态的,譬如下面这个内部类
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
public class DoubleClass {
static class Inner {
String number = "10086";
void iCall() throws IOException {
System.out.println("你正在拨打:" + number);
saveCount();
}
static void saveCount() throws IOException {
File file = new File("info.txt");
if (!(file.exists()))
file.createNewFile();
FileReader fr = new FileReader("info.txt");
Properties prop = new Properties();
prop.load(fr);
int count;
if (prop.getProperty("count") != null) {
count = Integer.parseInt(prop.getProperty("count"));
count++;
} else
count = 1;
prop.setProperty("count", String.valueOf(count));
FileWriter fw = new FileWriter("info.txt");
prop.store(fw, "");
System.out.println("你已经拨打" + count + "次");
}
}
public static void main(String[] args) throws IOException {
Inner inCall = new Inner();
inCall.iCall();
//调用静态方法
DoubleClass.Inner.saveCount();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2