前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题69(关于类的成员变量调用的问题)

面试题69(关于类的成员变量调用的问题)

作者头像
Java学习
发布2018-04-17 16:08:58
7660
发布2018-04-17 16:08:58
举报
文章被收录于专栏:java学习
面试题69

2018年1月22日

本期题目

(单选题)下列选项中哪一个是正确的?

代码语言:javascript
复制
public class Test{
    private float f=1.0;
    int m=12;
    static int n=1;
    public static void main(String args[]){
        Test t=new Test();
    }
}
  • A t.f
  • B this.n
  • C Test.m
  • D Test.n

考点:考察求职者对类的成员变量调用的问题

出现频率:★★★★★

【面试题分析】

答案:D

A:编译不成功,因为float浮点类型默认是double类型 所以float f=1.0f;(必须加上f 强调定义的是float)此处是精度由高(double)向低(float)转型所以会报错 但是若是float f=1;这里是默认类型是Int 类型 精度由低(int)向高转型(float)不丢失精度不会报错。

B:this的使用时针对在方法内部使局部变量等值于实例变量而使用的一个关键字,此处的n是静态变量而非实例变量 所以this的调用会出错(试想一下,static本来是全类中可以使用的,是全局的,你非得this去调用,这不是区分局部变量和实例变量的分水线吗?但是此处是全局的,不需要区分)

C:m是实例变量,什么是实例变量:就是需要new 一个对象出来才能使用的,这里直接用类名就调用了,jvm怎么知道m是谁?

D:类变量可以通过类直接调用

所以参考答案是 (D)


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档