java 静态类和非静态类的区别 10

如题... 如题 展开
 我来答
糖糖寳寳
推荐于2017-09-25 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3977万
展开全部
  静态类和非静态类的主要区别:
  主要区别在于静态类不能实例化,静态类编译器能够执行检查确保不是偶然的添加实例成员,C#编译器会自动把它标记为sealed,静态类中不能创建非静态的方法,即静态方法中只能创建静态方法,但在非静态类中可以调用静态方法。
  静态类的主要特性:
  1:仅包含静态成员。
  2:无法实例化。
  3:是密封的。
  4:不能包含实例构造函数。
  5:非静态类可以包含静态的方法、字段、属性或事件;
  6:静态方法和属性不能访问其包含类型中的非静态字段和事件
  7:静态方法只能被重载,而不能被重写,因为静态方法不属于类的实例成员;
  8:C# 不支持静态局部变量(在方法内部定义静态变量)。
  非静态类在使用时必须要实例化,每次使用时都要进行实例化,一般情况下使用比较频繁的类,可以使用静态类,比如LogClass,ConfigClass等等。
Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
infante_yin
2012-03-17
知道答主
回答量:4
采纳率:0%
帮助的人:4812
展开全部
Java中只有 静态方法,没有静态类的概念吧! 静态方法无需实例化当前类,可以直接用类名调用静态方法。非静态方法 必须要new对象 然后才能访问类中的方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ericpoon2001
2008-06-29 · 超过47用户采纳过TA的回答
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:81.3万
展开全部
静态类不能实例化,类的成员都要是静态成员和静态方法,

非静态类一般需要实例化后才可以操作,不过接口和抽像类不能直接实例化。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cef75b589
2008-07-01 · 超过11用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:0
展开全部
通俗的说

静态类是static的 不需要new对象就可以访问类中的方法

非静态类 必须要new对象 然后才能访问类中的方法
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
尚学堂前端学院
2020-12-05 · 百度认证:北京尚学堂科技官方账号
尚学堂前端学院
向TA提问
展开全部
1、从内存的角度分析用静态修饰和非静态的区别
用static修饰的成员变量一般情况下我们成为成员变量,其值存放的地址是方法区的常量池,其执行的顺序为在加载类的时候就将static修饰的变量名或者方法存放到常量池了,级别有限与构造函数和自定义函数
非静态修饰的变量:A、成员变量 B、局部变量
成员变量随对象存放的地址一样,因为它属于类的一部分,其地址在堆中
局部变量一般情况下在方法中申明,其存放的地址在栈中
(这里注解一下,所有的非变量名存放的地址在栈中,因为这里是局部变量)

2、从运行的机制出发
在源码被编译器编译成.class字节码文件的时候,一旦类被加载,用了static修饰的块/变量/方法就会马上存放到方法区,与此同时非静态的块/变量/方法,还没有编译,一旦将非静态的变量存放到静态方法里面,程序计数器指示到局部变量的时候就会报错,因为这个时候根本还没有编译到局部变量这一块。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式