静态方法,不能直接访问对象的非静态方法 因为静态方法是不随类的对象而存在的,而非静态方法是和对象具体关联的。 静态方法是通过 类名.方法名() 调用的,而非静态方法是通过 对象引用.方法名() 调用的。 假设有一个类,叫 Apple,有个非静态属性 weight 这是一个非静态属性,它和对象关联,不是和类关联。比如系统里只定义了 Apple,但没有创建 Apple 的对象,那么这个 weight 就不存在,如果创建了100个 Apple对象,那么每个 Apple 都会有 weight 属性,并且每个 Appple 的 weight 都不尽相同 而静态方法,不随对象关联,而和类型关联,也就是说,系统里有没有创建Apple对象,或者创建了无数个Apple对象,都不影响静态方法的调用。 那么假设,在静态方法里可以访问非静态成员,以上为例,Apple 里有一个方法 static void f(),它要打印 weight 属性的值,但这时系统里已经创建了100个 Apple 对象,每个Apple对象的 weight 值都不同,那么 f() 方法要打印哪个?这肯定是有矛盾的!所以,静态方法里不能直接访问非静态属性
有没有大佬懂sql2012的安装啊
[quote=引用 8 楼 qq_39936465 的回复:][quote=引用 7 楼 htljg 的回复:] 谢谢兄弟
不加static的属于实例方法,需要有实例对象来调用。 直接在主启动方法(静态方法)只能调用静态的setArea方法,并且方法中操作的变量也必须为静态变量。
[quote=引用 7 楼 htljg 的回复:] 谢谢兄弟
谢谢兄弟
[quote=引用 4 楼 htljg 的回复:][quote=引用 2 楼 七国的天下,我要九十九 的回复:]下面方法改成静态的就可以了
62,614
社区成员
307,326
社区内容
加载中
试试用AI创作助手写篇文章吧