为什么静态方法无法直接调用非静态成员变量和方法
静态方法无法直接调用非静态成员变量和方法 看到这句话,要想到形容的是这样的如下
静态方法里面无法调用非静态变量
下面在写一个对比非静态的方法和静态方法调用变量对比
问题原因
静态变量和静态的方法是属于类,不属于对象,调用的时候不需要实例化(当然如果你非要实例化之后在调用也是可以的),
非静态的变量和方法是属于对象的,调用的需要先实例化,这也就是上面图片中的name报错的原因,
大家需要注意,无法直接调用,并不是无法使用,我们实例化对象之后就可以调用的.
为了更好的理解,我写了一个demo
public class Student {private String name = "张三";private static String sex = "男";public void Name() {System.out.println(name);System.out.println("非静态方法Name");}public static void Sex() {System.out.println("静态方法sex");}public static void main(String[] args) {//非静态变量name调用Student student = new Student();System.out.println(student.name);// 静态变量SexSystem.out.println(sex);// 非静态方法调用student.Name();//静态方法调用Student.Sex();}}
可以看到,静态变量可以直接调用,静态方法输入类的,可以直接通过类.方法 的方法直接使用
非静态的变量在静态的方法中需要实例化对象,即是Student student = new Student(); 实例化对象student 然后通过对象调用方法和变量
为什么静态方法无法直接调用非静态成员变量和方法相关推荐
- 【C++静态成员函数不能调用非静态成员变量】
C++静态成员函数不能调用非静态成员变量 静态成员函数 this指针 C++静态成员函数不能调用非静态成员变量原因 为什么要引入static 什么时候用static 致谢 静态成员函数 定义:静态成员 ...
- qt 静态成员变量_Qt 静态成员函数的调用非静态成员变量,非静态成员函数
在多人开发的项目中,一些通用的工具类接口可以用静态成员函数.方便调用,并且不容易调用错误. 静态成员函数不传递this指针(不能->),不识别对象个体,所以经常用于对静态数据成员进行操作.不能操 ...
- 静态成员函数如何调用非静态成员变量
◆函数加参数解决方法 1).编译时候静态数据和成员函数就有了它的内存区,它不属于类的任何一个具体对象.所以,静态成员函数在编译时候就需要确定x及y的值,而那个时侯变量x,和y还没有创建,所以不可以访问 ...
- java静态方法调用非静态变量_[java]静态方法访问非静态方法的方法
是不是是有点拗口哈,在刚开始的开发中,经常会碰到"无法访问非静态方法",如下: Test.java public Test{ public void notStatic(){ Sy ...
- php静态方法调用变量吗,php静态方法怎么调用非静态变量?
php中,静态方法可以使用self关键词来调用非静态变量,例"self::$name":一个方法被"self::"后,它就自动转变为静态方法.注:静态方法不能调 ...
- 静态成员变量及方法的调用
静态成员变量及方法的调用 收藏 先看代码: package lession1; import java.io.IOException; public class HelloWorld { pri ...
- 类中的静态成员函数访问非静态成员变量
http://blog.csdn.net/u011857683/article/details/52294353 1.思路: 静态成员函数属于类(通过类访问,调用函数时没有提供this指针), 非静态 ...
- 静态成员变量和非静态成员变量的对比
静态成员变量和非静态成员变量的对比 1.存储的数据 静态成员变量存储的是所有对象共享的数据 非静态成员变量存储的是每个对象特有的数据 2.存储位置 静态成员变量是随着类的加载在方法区的静态区开辟内存了 ...
- 静态成员变量和非静态成员变量
写在前面的总结: 静态成员变量是属于类的,就像是你买了一套房,属于固定资产:而非静态成员变量是不属于类的,就像是你租了一套房,主人套房子不属于你,因此,静态成员变量的调用可以直接通过类加域运算符的形式 ...
最新文章
- Windows与Linux之间互传文件的方法
- spring mvc基本概念
- Scrum立会报告+燃尽图(十一月十五日总第二十三次):代码规范与技术交流
- Android EditText回车不换行
- 检测到的ASP.NET设置不适用于集成管理管道模式
- undb php,显示html过滤报错,我不知道如何修改了。
- Pix2Pix Z图像翻译系统(自制)
- UItableView的一些特殊点击效果
- C语言求一个数组中第k大的数,leetcode | Median of Two Sorted Arrays 寻找2个有序数组中第k大的值...
- maven如何合并两个war到一个war项目中
- leetcode题库:4.两个排序数组的中位数
- linux桌面虚拟化-KVM
- 下载tensorflow速度慢怎么办?
- el-tree处理大量数据
- B 吃雪糕(科林明伦杯)
- 狼人杀攻略:你当我好骗吗,我们相信谁!
- 第一章 甄士隐梦幻识通灵 贾雨村风尘怀闺秀
- java毕业设计阿博图书馆管理系统(附源码、数据库)
- 2009 junior T1 多项式输出 题解
- echart简单使用
热门文章
- 基于Golang的监听读取配置文件的程序包开发——simpleConfig_v1
- 2021-2027年中国智能家居设备行业市场前瞻与投资策略规划报告
- 2022-2028年中国炼钢行业市场研究及前瞻分析报告
- 2022-2028年中国激光全息膜行业市场现状调研及市场需求潜力报告
- Linux下“/”和“~”的区别
- TensorFlow用法
- Docker_Swarm集群系统
- AlexeyAB DarkNet YOLOv3框架解析与应用实践(二)
- 图像超分辨率与天气预报
- Fragment之间传递数据的方式