问题汇总(一) ----------2019/2/22

第一次写,就先不弄样式了 ^_^

以后攒五个或以上就发一版

问题概括:

1、为何main(主)函数中不能直接调用成员变量:

1)成员函数内部为何不可以定义静态变量:

2、控制访问权限修饰符、static都不能修饰局部变量、局部函数、局部内部类

1)内部类访问局部变量的时候,为什么变量必须加上final修饰(转,转2)

3、@SuppressWarnings(unused) 、serial与rawtypes

4、String为什么不可变

5、形参的可变参数的定义(如String... args)(转)

问题回答:

1、为何main(主)函数中不能直接调用成员变量:

因为主函数是static函数,不可以直接调用非静态变量和非静态方法。(在JAVA中静态函数和变量不依赖对象,独立存在,而非静态函数和变量需要依赖对象才能建立)

解决方法:

a、将变量变成静态变量,再在调用时用实例名调用或类名调用(推荐使用类名调用,可以直观知道是静态方法或变量)

b、实例化该类,用实例名调用

c、将方法改成非静态方法(主函数中不推荐)

引申问题:
1)成员函数内部为何不可以定义静态变量:
    有两种想法:
        a、static只能修饰成员变量或成员方法。不能修饰局部变量。在Java 中,用static 修饰的成员 被视为共享的。定义在方法中,被视为局部的。显然是不能共享的。
                                                                                                                                                                      ——引自https://zhidao.baidu.com/question/281363843.html
        b、静态变量和方法在JAVA运行就产生,而成员函数依赖对象建立,不一定存在,在一个不一定存在的方法里定义一个跟定会产生的变量,前后矛盾。
        

2、控制访问权限修饰符、static都不能修饰局部变量、局部函数、局部内部类

因为不管是局部变量,还是局部函数,或是局部内部类都是在成员函数内定义的,本身就只能在成员函数内被调用,外部不可以调用,已经有了限制,所以不能用控制访问权限修饰符修饰,而成员函数是依赖对象存在的,随着对象的回收而销毁;static修饰的变量和函数在类加载的时候被创建,随着类的回收而销毁。

引申问题:
1)内部类访问局部变量的时候,为什么变量必须加上final修饰                                                                  ——引自https://feiyeguohai.iteye.com/blog/1500108
    final从语法上约束了实际上两个不同变量的一致性(表现为同一变量)

3、@SuppressWarnings(unused) 、serial与rawtypes

@SuppressWarnings 标示下面的{ }或者一句代码忽略

unused 用于我们有时拿出来的变量过多,却有些多余或者没有当前用到,则可以用它;

serial 主要用于我们的实体类,序列化后没有加serialVersionUID,可以加上;

rawtypes 压制警告,常用与压制泛型的警告。

@SuppressWarnings("all") 抑制所有类型的警告

4、String为什么不可变

String类本质都是对字符数组的封装(而且value也只是一个引用,它指向一个真正的数组对象)。该数组value被声明为私有,外部便无法直接访问该成员,并且加以final修饰 , 源码中也没有提供value的set方法,因此只能对value赋值一次,所以String类一旦初始化,外部便无法修改,因为value被修饰为 private final,在String类内部也无法改变。所以String对象是不可变的。

5、形参的可变参数的定义(如String... args) ——引自https://www.cnblogs.com/imqsl/p/6872390.html

String[] args 和 String... args 本质上不没有什么区别,String... args 最后还是转化成String[] args 来做的,只是String... args这种形式在应用上更加的灵活和简便。

备注:1、成员变量叫实例变量,静态变量叫类变量。

原文地址:https://www.cnblogs.com/violet-enter/p/10417123.html

时间: 2024-08-01 19:54:15

问题汇总(一) ----------2019/2/22的相关文章

2019.1.22 springboot+elasticsearch+docker

首先先用docker 搭建 es 搜索 es+springboot 大都又是 在本地 搭建的es..于是觉得自己边搜边写一篇博客 作为记录使用 docker:首先安装 docker pull elasticsearchdocker run -d --name es -p 9200:9200 -e "discovery.type=single-node" id 打开 服务器ip:9200 可以正常打开docker exec -it es /bin/bashcd plugins/plugi

2019.6.22刷题统计

今日写统计如此早的原因是:下午回老家,无法刷题. 今天完成了普及组的100道题,但还未进入USACO. 通过数:9 通过题目编号:1061/1072/1085/1090/1103/1109/1113/1125/1132 排名:暂居第一 本网站开始时间:2019/6/15 15:02:09 结束时间:2019/6/22 12:58:30 共计6天21小时56分21秒. 完成题目(见图片): 通过普及组100题的练习,我发现了自己普及组的知识点仍然掌握不全面,还需要继续复习. 另外,已经完成了入门+

2019第22届中国(北京)智能科技产业博览会/行业发展风向标

中国国际展览中心(静安庄馆)是由×××审批建造最早的国家级展馆,名列北京80年代十大建筑之首.从1985年建成并承办"亚太博览会"开始,即掀开了改革开放后我国现代展览业蓬勃发展的序幕,有力带动.促进了我国展览业的快速发展,尤其对我国的改革开放.国内外经济技术交流.贸易往来及社会主义市场经济体制的日益完善均发挥了积极重大的推动作用. 中国国际展览中心静安庄馆拥有8个展馆,室内面积5.3万平方米,室外面积7000平方米. 经过30余年的培育与发展,每年不定期举办100余中小型展会,展出面积

PAT 甲级 A1060 (2019/02/22)

1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 using namespace std; 5 int n; 6 string Deal(string S, int &e){ 7 int k = 0; //s的下标 8 while(S.length() > 0 && S[0] == '0'){ 9 S.erase(S.begin()); //去掉S的前导0 10 }

PAT 甲级 A1100 (2019/02/22)

1 #include<cstdio> 2 #include<iostream> 3 #include<string> 4 #include<map> 5 using namespace std; 6 // [0,12]的火星文 7 string unitDigit[13] = { 8 "tret", "jan", "feb", "mar", "apr", &q

2019第22届北京科博会

人工智能.互联网+.智慧城市.无人机:寻觅2019年科技产业未来走向?互联网行业发展几十年以来,市场普及率与技术成熟度越来越高.相应的,互联网+.人工智能.智慧城市.无人机.大数据等互联网思维下的产物,开始纷沓而至.随着互联网产业的队伍越来越壮大,他们对市场的影响力也越来越大.受此驱动,经济的发展模式开始由以传统行业主导的旧经济模式转变成以互联网行业为主导的新经济模式.而谈起互联网思维下的产物,2018年"动作"较大.影响力较大的产物,当属互联网+.人工智能.智慧城市.无人机等几个热门

2019第22届北京国际人工智能展览会【科博会】

The 22th beijing International Artificial Intelligence Exhibition 2019 时间:2019年10月24-27日 地点:北京三元桥老国展 人工智能新技术 | 人工智能新制造 | 人工智能新能源 | 人工智能新金融 | 人工智能新零售 | 人工智能新社区 人工智能"一词最初是在1956 年Dartmouth学会上提出的.从那以后,研究者们发展了众多理论和原理,人工智能的概念也随之扩展.人工智能(Artificial Intellige

2019.2.22 初级英语口语班 结课

下周进入高级班-纯英语互动教学-商务 ------------------------------ (1)26个字母 留意L  X  Z  N 口型,舌位 (2)元音 : 对口型-肌肉记忆 听录音:纠正自己的发音 元音的近似音辨析:这直接影响到发音的准确度,和听力的辨识度. (3)辅音 留意 n 留意 Television  , Pleasure 留意 Mouth ,Mouse 4小组展示 Self-introduction 在初期要读的慢而清晰,然后听自己的录音,便于纠正 Job descri

PAT 甲级 A1047 (2019/02/22)

#include<cstdio> #include<cstring> #include<algorithm> #include<vector> using namespace std; const int MAXN = 40010; const int MAXC = 2510; vector<int> Courses[MAXC]; char StuName[MAXN][5]; bool cmp(int a, int b){ //按照名字典序从小到