局部变量和成员变量重名隐藏成员变量
- 格式:doc
- 大小:27.50 KB
- 文档页数:2
成员变量、实例变量、类变量和局部变量区别
⼀、成员变量、实例变量、类变量和局部变量区别
1::变量电议部分所定义的变量被称为类的。
也就是说在整个类中都有效,类中的⽅法可以直接调⽤成员变量使⽤。
然⽽成员变量⼜分为实例成员变量(简称)和类变量(简称)
1.1::就是我们正常定义的变量,⽐如int a; a就是
1.2::定义前要加上Static ⽐如static int a;这个a就是静态变量,当在变量定义前加上static的时候就代表着该变量在使⽤的时候有⼀处改变则各个⽤到这个变量的地⽅,该变量都发⽣改变,就是所谓的⼀处改变处处改变,静态变量的⽣存期为整个,但是只能在定义该变量的函数内使⽤该变量。
退出该函数后,尽管该变量还继续存在,但不能使⽤它。
2::在⽅法体中定义的变量和⽅法的参数称。
也就是说只在定义它的⽅法内有效,⽽⽅法外部的其他⽅法⽆法使⽤局部变量。
当局部变量名字与成员变量名字相同,则成员变量被隐藏,即这个成员变量在这个⽅法内暂时失效,以局部变量定义的为准。
⼆.长提到的⽅法有,类⽅法,实例⽅法。
就是名字和类名相同,⽽且没有类型。
类⽅法和实例⽅法的区别就是类⽅法前⾯有static修饰,⽽实例⽅法没有static修饰。
实例⽅法既能对类变量操作,也能对实例变量操作,⽽类⽅法只能对类变量进⾏操作。
Java选择题1. 下面的不是Java的特点的是()A. 动态性B. 面向对象C. 编辑型D. 多线型2. Java源文件以为扩展名的是()A. .classB. .javaC. .javD. .cla3. Java源文件经编译产生的文件称为()A. .obj文件B. .exe文件C. .java文件D. 字节码文件4. 字节码文件是与平台无关的什么文件()A. ASCII码B. 二进制码C. BCD码D. Unicode码5. 下面的那一项不是Java application和applet的不同点()B. A. 执行方式不同B. applet中不再需要main()方法C. applet由若干各类构成D. Java applet由Web browser执行6. Java注释方式不包括()C. A. //… B. /* … */ C. /** … **/D. /** … */ C7. 下面不是合法Java标识符的是()D. A. ab B. $_3 C.3ab D. ab3 C8. 下面均为Java关键字的一组是()"A. boolean,byte,long,true " "B. byte, long,true,goto" "C. goto ,Boolean,byte,true" "D. bool, long,true,auto" A9. Java语言使用的字符集是()A. ASCIIB. EBCDICC. UnicodeD. BCD C10. Java的int型变量占内存的字节是()A. 1B. 4C. 2D.与机器有关B11. 下列是合法的实型常量的是()"A. 12.4,12,12.4f,12.4F" "B. 12.0f,2e4f,12.0,6e-4" "C. 6e,12.1,24f,25d" "D. 13.6, 6e0.3,456.7d,e2" B 12. 下列说法正确的是()A. 不需定义类,就能创建对象B. 属性可以是简单变量,也可以是一个对象C. 属性必须是简单变量D. 对象中必有属性和方法 B13. "若有定义int a=2,b=4;boolean x;则执行语句x=a>b;System.out.println(x);的结果为()"B. A. 1 B. 0C. trueD. false D14. "若有定义int x=3,y;则执行语句y=(x++)+(x++)+(x++);后y=()"C. A.9 B.12C. 15D. 18 B15. "若有定义int x=3,y;则执行语句y=(++x)+(++x)+(++x);后y=()"D. A. 12 B. 18 C. 9 D. 15 D16. Java源程序编译后生成的字节码文件扩展名为()E. A. .exe B. .obj C. .java D. .class D17. 用户设置环境变量的合法格式为()A. set path to c:\jdk1.2\binB. set classpath to c:\jdk1.2\binC. set classpath=c:\jdk1.2\binD. set classpath c:\jdk1.2\bin C18. 下面不是Java移位算符的是()B. A. >>> B. <<<C. >>D. << B19. 若有a=001001,执行a>>>3;后a=()A. 0001001B. 1001010C. 1111001D. 1000001 B20. 执行15.2%5的结果()A. 非法B. 3C. 0D. 0.2 D21. 下面哪个是有效的Java标识符()A. max_numB. max-numC. 3DogNightD. (train) A22. 编译一个定义了5个类和18个方法的Java源代码文件,编译该源代码文件时会产生几个字节码文件()A. 1B. 23C. 18D. 5 D23. 下面哪个不是Java的关键字()A. doubleB. IntegerC. floatD. default B24. 下面关键字中那一个是不可用来控制对类成员的访问()A. publicB. privateC. protectedD. default D25. 下面那组是关键字()"A. abstract,object,double" "B. class,object,this" "C. class,double,this" "D. Boolean,double,this" C 26. 使用八进制、十进制和十六进制分别表示字符3正确的一组是()A. Octal …\033‟(八进制) Decimal …33‟(十进制) Hexadecimal …\u0033‟(十六进制)B. Octal …\063‟ Decimal…51‟ Hexadecimal …\0033‟ C.…063‟…3‟…\u0033‟D. …\63‟…51‟…\0033‟ C27. 把“1”放置在名叫ref的整数的高位处(该整数为ox00000001)可用代码()A. ref>>31B. ref>>=31C. ref<<31D. ref<<=31 D28. 算符&&适用于数据类型()B. A. int B. longC. doubleD. boolean D29. "设有定义int a=b,则计算表达式a+=a-=a*a 后,a为()C. " A. -60 B. 0 C. 2D. -24 A30. 若a是int型变量,计算表达式a=25/3%3 后,a为()A. 1B. 2C. 3D. 4 B31. 下面的四个选项中,均是八进制或十六进制数的选项是()"A. -10,ox8f,011" "B. oabc,-017,oxc" "C. 0010,-ox10,oxf1" "D. oa12,ox12,oxa " C32. 下列算符中优先级别最高的是()A. &B. &&C. !=D. ?: C33. JavaAPI的类被组织成几个包()A. 6B. 7C. 10D. 8 D34. Java中,byte型数组在内存中的存储形式是()A.ASCII码B. 补码C. 原码D. 反码B35. 关于main()方法说法正确的是()A. 一个类中可以没有main()B. 所有对象都必须放在main()方法中C. main()必须放在公共类中D. main()方法头的定义可以根据情况任意修改A36. "若有以下定义int k=7,x=12 ,则能使值为3的表达式()" A.x%=(k%=5)B. (x%=k)-(k%5) C. x%=k-k%5 D.x%=(k-k%5) B37. Switch(exp)语句中的exp不应是()A.字符型变量B.整型变量C.整型常量D.逻辑型常量D38. "若想连接字符字面值""Zang"",""Zoom""和""Moon"",可使用哪种形式()B." "A.""bang"",""Zoom"",""Moon"" " B. bang Zoom Moon "C. ""bang""""Zoom""""Moon"" " "D.""bang""+""Zoom""+""Moon"" " D39. 构造方法被调用是当()A. 类定义时B.使用对象的属性时C.使用对象的方法时D. 对象被创建时 D40. 把字符变量c设置为一个空格字符的方法是()"A. c=""﹍""" B. c=0 C. c=…\u0020‟ D. c='\u0000' C41. 将有三个boolean值的数组初始化为true的是()A.boolean []b=new boolean[3] "B.boolean []b={true,true,true} " "C. boolean [3]b={true,true,true}" "D.boolean []b=new boolean[3]; b={true,true,true}" B42. 表达式5&2 之值应为()A. 0B. 2C. 5D. 7 A43. 下面表达式10|2 之值应为()A. 0B. 2C. 10D. 14 C44. 下面语句System.out.println(4|7)的输出是()A. 4B. 5C. 6D. 7 D45. 在下面的语句序列中,temp的最终值为()A. 0B. 1C. 2D. 3 B46. "分析下面这行代码if(5&7>0&&5|2) Systen.out.println(""true""),选择唯一正确的说法()" A. 这行代码不能编译 B. 代码编译,无任何输出C. 代码编译,输出true D. 代码编译,输出false A 47. "关于下面的代码行int []arr={1,2,3}; for(int i=0;i<2;i++)arr[i]=0 ,那一个表达式的值为true()"A.arr[0]==0B. arr[0]==01C. arr[1]==1D. arr[2]==0 A48. 分析下面的代码行float f=3.2; int I=f; ,不正确地的答案是() A.代码不能编译B.代码编译,i被设置为3 C.第二行若改为int i=(byte)f 则可编译D. 第一行若改为float f=3.2f 则可编译B49. 下面的那一个不是Java合法标识符() A.Girl_$ B.$23 C.www12 D. 3xy D50. 下面的那个是Java的关键字() A.sizeof B.abstract C.NULL D. Boolean B51. 下面的那一项能正确生成5个空字符串() A.String a[]=new String [5] B.String 5[a] C.String [5]a D.String a[5] A52. Java程序是由什么组成的() A.类B.对象C.函数D. 包 A53. 执行一个applet,可以使用() A.java.exe B.appletviewer.exe C.Javac.exe D.javadocument.exe B54. 下列算符中优先级最低的是() A.++ B.% C.? D.& C55. 下列算符中优先级最高的是() A.+ B.instanceof C.&& D. ^ B56. 下面这行代码String [][]s=new String[10][]; 的正确陈述是() A.该行代码非法B.s 是一10行10列的数组C.s 是一包含10个一维数组的二维数组"D.s中每个元素设为"""" " C57. 下面赋值非法的是() A.long test=012 B.short s=10 C.int other=(int)true D.double d=1234.05 C58. 下面那个代表八进制数字() A.ox12 B.320 C.o32 D. 12 C59. 下列算符中,只有那一个被String对象重载() A.- B.+= C.>> D.& B60. 下列标签名中非法的是() A.here B._there C.this D. that C61. 下列表达式中合法的是() A.(true&true) B.(int myInt=0>3) C.float myFloat=40.0 D.boolean b=(boolean)99 A62. 下面不是面向对象技术特点的是() A.模块化B.封装C.继承性D. 多态性D63. Java中,一各类可以有几个父类() A.任意B.1 C.2 D. 4 B64. 使用那个关键字来定义一个接口() A.implements B.class C.extends D.interface D65. 接口中的方法被默认是什么的() A.private B.public C.protected D.package D66. 接口体中不应包含() A.常量定义B.常量赋值C.方法实现D.方法声明C67. 常量定义的修饰符为() A.final B.finally C.const D.define A68. 下列不是重载方法的特征的是() A.参数个数不同B.名相同而类型不同C.参数类型不同D.名相同且类型相同 B69. 在成员变量与局部变量重名时,若想在方法内使用成员变量,要使用关键字() A.super B.import C.this D. return C70. 若有定义如下class dog { float x; static int y;…},则下列说法中正确的是() A.x称为类变量,y为实例变量"B.x,y均为类变量" "C.x,y均为实例变量" "D. x为实例变量,y为类变量" D71. 下列不是构造方法特征的是() A.名字与类相同B.是无参考的C.是viod型D.是一种特殊方法B72. 下列说法正确的是() A.实例方法能对类变量和实例变量操作B.实例方法只能对类变量操作C.实例方法只能实例变量操作 D.类方法能对类变量和实例变量操作 A73. 下列说法错误的是() A.一个类中的实例方法可以调用其他实例方法B.静态方法可以调用实例方法C.实例方法可以调用静态方法 D.静态方法可以调用静态方法 B74. 如想限制类本身对静态成员的访问,应该() A.用final B.用private C.不使用任何关键字D.不能限制B75. 下列不对的是() A.一个实例方法可以同时为protected和Abstract B.static变量也可为final的C.static 方法可以是protected D.static方法可以是的 D76. 默认情况下,所有类能访问所有成员,除了() A.用final关键字定义的B. 用abstract定义的C.在另一个包中定义的 D.在同一个包中定义的 C77. package awt;的结果是() A.编译结果出错B.说明文件的类包含在Java 的awt包中C.说明文件的类在自定义的awt包中 D.导入自定义的awt包中的类 C78. "若有定义class A{int x,y; static float f(int a){…} float g(int x1,int x2){…}} 及A anew A();则下列用法中非法的是()" "A.A.g(3,2)" B.A.f(3) C.a1.f(4) "D.a1.g(2,5) " A79. 下列不是类的属性修饰符的是() A.public B.abstract C.private D.final C80. 类中不加任何访问权限限定的成员属于() A.default B.public C.private D.protected A81. 关于super,下面说法中错误的是() A.用来访问父类被隐藏的的成员变量B.用于调用父类中被重写的方法 C.用于定义父类 D.用于调用父类的构造函数 C82. 接口中的方法默认的访问控制方式是() A.public B.private C.protected D.default A83. 在Java编程中,什么是最基本的单元() A.对象B.类C.包D. 接口 A84. 你编译代码class MySstring extends String{} 会出现的情况是() A.成功编译B.不能编译,因为没有main方法C.不能编译,因为String是abstract类型的D.不能编译,因为String是final类型的D85. 若有下面的类定义class Bridge {Road road;} class Road{String name;} 它表示() A.“是什么”关系B.“有什么”关系C.二者都是D.二者皆不是B86. 要想使定义该类所在的包之外的类不能访问这个类,使用关键字() A.不用 B.private C.finalD.protected A87. 定义一个名为key的类,使之不能被继承,应选() A.class key{} B.native class key{} C.class key{ final;}D. final class key{} D88. 一个对象创建包括的操作中,没有下面的() A.释放内存B.对象声明C.分配内存D.调用构造方法 A89. 下面定义形式中,那一个是非法的() "A.class A{int a,b;…}" "B.class A{int i,j; i=j=10…}" C.class A{int i; float f;…} D. class A{int i=12; float f1=1.2f;…} B90. this关键字的含义是表示一个() A.指针B.当前对象C.一个类D. 一个方法B91. "若有定义如下class A{int x,x1; int f(){int a;…} int g(){int y;…}} ,则不正确的赋值为()" A.在f()中a=x B.在f()中x=a C.在f()中x=x1 D.在g()中y=a D92. 下列定义形式错误的是() A.float a[] B.float a[5] C.int a[]=new int[5] D. float []c B93. 若有定义int a[]=new int[2][3]则第1个下标的可用范围是() A.1到2 B.0到2 C.1 D. 0到1 D94. 数据下标越界,则发生异常,提示为() A.Runtime Exception B.IOException C.ArrayIndex OutOfBoond Exception D.class Cast Exception A95. 若有定义char a[]=new char[5];则a.length的值为() A.0 B.10 C.4 D. 5 D96. "若有定义String tom=""我们是学生"";则tom.length()的值是()" A.5 B.10 C.6 D. 11 A97. "若有定义String tom=""boy"";String hill=""boy"";则表达式(tom==hill)的值为()" A.1 B.true C.false D.0 B98. 调用trim方法,可以去掉字符串的那部分空格() A.前部B.后部C.全部D.前后D99. "若有定义Sting tom=""I am a good cat "";则tom.indexOf(""a"")的值为()" A.2 B.3 C.4 D. 5 A100. "若有定义Sting tom=""I am a good cat "";则tom.indexOf(""good"",2)的值为()" A.4 B.5 C.6 D. 7 D 101. "若有定义Sting to=""I am a good cat "";则to.indexOf(""a"",7)的值为()" A.7 B.13 C.14 D. 8 B102. "若有定义Sting jerry=""I love Tom"",s1;则s1=jerry.substring(2)的值为()" A.l B.love C.love Tom D. Tom C103. "若有定义Sting jerry=""I love Tom"",s1;则s1=jerry.substring(2,5)的值为()" A.lov B.love C.love Tom D. Tom A104. 调用方法时,若要进行参数的引用传递,参数类型可为() A.整型B.实型C.字符型D. 类D105. 在Java中下列关于继承的论述中,错误的是() A.继承具有传递性B.继承关系也称为“即是”(is a)关系 C.支持多继承 D.继承提高了系统的可重用性 C106. 在Java中,关于封装性的说法中,错误的是() A.是一种信息隐蔽技术B.使对象之间不可相互作用C.是受保护的内部实现 D.与类有关,封装的基本单位是对象 B107. 一个消息包含的内容,不应有() A.消息接收者B.接受对象应采用的方法 C.指示接受者做何处理D.方法的参数 C108. "若有定义:class A{ static float f(int a){…}} (设有A类对象a1),则下列说法中非法的是()" A.A.f(3) B.a1.f(4) C.a1.g(5) D. A.g(3) D109. 若声明一个类不能被继承,即不能有子类,用关键字() A.final B.finally C.abstract D. super A110. 显示低层次图片的代码应放在下列那个方法中() A.update() B.paint() C.init() D.repaint() B111. AWT提供给paint()方法的是那个类的实例() A.Thread B.Applet C.Graphics ponent C112. 借助于BorderLayout,为往容器中添加一个组件,应写代码() "p.add(BorderLayout.CENTER,cont)" "p.add(cont,BorderLayout.CENTER)" "p.add(BorderLayout.CENTER,comp)" "p.add(comp,BorderLayout.CENTER) " C113. 为在容器底端放一个按钮,不管用户如何改变尺寸,下列布局管理器那一个最简单() A.BorderLayout B.GridLayout C.FlowLayout D.GridbagLayout A114. "代码的new List (10,true);的含义是()" A.创建含10列的新列表B.创建含10行的新列表,且允许多重选择C.创建不多于10个选项的新列表 D. 创建含10行的新列表,每次选一项 B115. Graphics类有一坐标系统,其原点在() A.图形空间中心B.图形空间左下方C.图形空间左上方D.用户配置的坐标系统 A116. "main()方法中有代码:Frame f=new Frame(""My Frame""); f.sd Size(100,100); 为在屏幕上显示该对象,应加下面哪个的代码()" A.f.appear() B.f.setForeground() C.f.set Visible() D.f.enable C117. 一个Java Applet的生命周期内涉及多个方法,但下面的哪个不是() A.init() B.finalize() C.stop D.destroy() B118. Applet对象自动调用init()方法完成初始化工作,init()可被调用几次() A.3 B.2 C.1 D. 任意 A119. init()方法所做的初始化其任务中不应包括() A.设置初始状态B.装载图像C.设置参数D.跳转页面D 120. 调用repaint()方法,会出现什么情况() A.清除以前pain()方法所画的内容B.保留原来pain()所画的内容C.清除pain()以前所画的内容,再一次调用pain()方法 D.在pain()以前所画内容基础上,再一次调用pain()画新的内容C121. 结束applet的生命周期的方法中,不包括() A.stop() B.destroy() C.关闭浏览器D.close D122. 关于applet,下面说法正确的的是() A.能加载库函数B.可以读写本地计算机系统上的文件C.不能运行本地计算机上的任何程序 D. 不能和任何主机建立网络通信 C123. paint()需要一个参数,它是() A.一个位置值B.一个Graphics对象C.一个字符串D.一个高度值C 124. HTML语言的applet标签属性中,哪个不是必选的() B.CODE C.WIDTH D.HEIGHT A 125. JVM会一直运行,直到() A.main()结束B.仅剩下用户线程C.仅剩下守护线程D. (1)或(3)任一条件 C126. "为获得参数lastname ,可在applet中用代码()" "A.String s=getName(""lastname"")" "B.Strings=Parametre(""lastname"")" "C.String s=getParametre(""lastname"")" "D.String s=get(""lastname"") " C 127. 从下面的main ()的调用Java lyrics a kiss is but a kiss 中访问单词“kiss”的是() A.args[0] B.args[5] C.args[4] D. args[3] B128. 下面定义main()方法有效的是() A.public static void main(String args[]){} B.public main(String[]) C.public void main() D. public void main(args[]){} A129. main()需要一个参数,它是() A.一个整型量B.一个String对象C.一个实型量D.一个任意类的对象B 130. "从下面的main()方法Java lyrics a kiss is but a kiss 的调用中访问单词""but""的是()" A.args[3] B.args[2] C.args[0] D.args[1] A131. 在文本框中设置文本的方法是() A.setEchochar() B.getText() C.setText() D.Textfield() C132. 获取文本框的文本的方法是() A.setEchochar() B.setText() C.Textfield() D. getText() D133. 用于文本区中设置文本同时清除文本区中原有文本的方法是() A.setText(String s) B.getText() C.TextArea(String s) "D. TextArea(int x,int y)" A134. 对于文本区事件源,要获得监视器的方法是() A.addTextListener() B.TextV alueChanged() C.append(String s) D.insert(String s int x) A135. 下列监听器接口,那个不能添加到TextArea对象中() A.TextListener B.ActionListener C.MouseListener ponentListener B136. 下列那一项的实现不可以添加为TextField对象的监听器() A.ActionListener B.FocusListener C.MouseMotionListener D.WindowsListener D137. 下列说法不正确的是() A.java.awt包的类Panel是用来创建面板的B.container类是Panel类的子类C.Panel类的实例是一个容器D.容器也是一个组件B138. 那个类负责创建画布对象() A.Applet B.Container ponent D.Canvas D139. 在ScrollPane(int a)方法中,a指定滚动条的初始状态,下面除那个之外均是a可取值() A.ScrollPane.SCROLLBARS_ALWAYS B.ScrollPane.SCROLLBARS_AS_NEEDED C.ScrollPane.SCROLLBARS_NEVER D.ScrollPane.SCROLLBARS_NEEDED D140. 能从左到右,从上到下地排列组件,并且当从一行移到下一行时能使每行居中的布局管理器是() A.BorderLayout B.FlowLayout C.GridLayout D.CardLayout B141. 当把组件放置在BorderLayout的哪个区域时,该组件可以自动调整其水平方向而非垂直方向的尺寸() A.North or South B.East or West C.Center "D.North,South or Center" A142. 下列布局管理器中,哪一个会在前个组件相同行上放置组件,直到该组件超出容器的宽度,然后从新行开始,并把添加的组建居中放置() A.BorderLayout B.CardLayout C.FlowLayout D.GridbagLayout C 143. 应把组件放在BorderLayout的哪个区域时,它会自动垂直调整大小,但不水平调整() A.North or South B.East or West C.Center "D. North,South or Center" D144. 当为组件调用repaint()时,AWT包调用组件方法() A.update B.paint C.draw D. show A145. 用Java中的哪个方法来隐藏用户界面的组件() A.disable B.setVisible C.remove D.delete B146. 如想改变某组件的尺寸,可用方法() A.dimension B.resize C.area D.setSize D147. setForeground()和()setBackground()定义在哪个类中 A.Graphics B.Container ponent D.Applet C148. 若要用空标题构造选择框,应选择方法() "A.Checkbox(String s,boolean b,CheckboxGroup g)" Checkbox() "C.Checkbox(String s,boolean b)" D.Checkbox(String s) B149. 当我们在一个容器中添加了多个选择框,且使用CheckboxGroup将它们归为某一组,则在这一组中,一个时刻可以有几个选择框被选中() A.1 B.2 C.4 D. 任意 A150. "Checkbox类的方法有getstatc(),getlable()等,它们是什么的()" A.private B.public C.protected D. default B151. 选择控件(Choice)每次选择可择其中的项是() A. 1 B. 2 C. 3 D. 所有 A152. 创建了一个选择控件对象后,可得选项顺序加入到控件中的方法是() A. Choice() B. remove(int) C. getSelectItem() D. add(string) D153. 当选择了选择控件(Choice)中某个选项后,会产生事件() A. ActionEvent B. ItemEvent C. TextEvent D. 不会产生事件 B154. 使选择控件(Choice)获得监视的方法是() A. addActionListener() B. addItemListener() C. addComponentListener() D. addT extListener() B155. 选择控件(Choice)事件的接口方法是() A. actionPerformed(ActionEvent e) B. itemStateChanged(ItemEvent e) C. adjustmentV alueChanged(AdjustmentEvent e) D. textV alueChanged(TextEvent e) A156. 如果要判断是哪个选择控件(Choice)产生的事件源,可使用的方法() A. getItem(int) B. getSource C. getItemSelectable() D. getItemIndex() C157. 滚动列表(List)每次选择选项,可以选择个数是() A. 1 B. 多个 C. 所有D. 根据列表对象初始化参数确定 D158. 获得滚动列表(List)当前选项的索引,可以使用方法() A. getSelectedItem() B. getSelectedIndex() C. add(Sting) D. 不能获得索引,只能得到选项字符串B 159. 滚动列表(List)k可以产生几种事件() A. 1 B. 2 C. 3 D. 4 B160. 双击滚动列表上的选项,可产生事件是() A. ItemEvent B. ActionEvent C. FocusEvent D. KeyEvent B 161. 设置组件的背景色可用方法() A. void setBackgroundColor(Color c) B. void setForegroundColor(Color c) C. void setBackground(Color c) D. void setForeground(Color c) C162. 创建一个字体类对象,字体的式样为斜体,可使用的参数是() A. Font.PLAIN B. Font.BOLD C. Font.ITALIC D. Font.BOLD和Font.ITALIC C163. 使用方法可设置组件的位置和大小的是() "A. void setLocation(int x,int y)" "B. void setSize(int Width,int Height)" "C. void setBounds(int x,int y,int width,int height)" D. 没有这样的方法C164. 用类可以创建一个Java的窗口的是() A. Canvas B. Applet C. Window D. Frame D165. 基于Frame创建了一个窗口,该窗口() A. 立即显示 B. 不能立即显示C. 用方法SetVisible(true)显示 D. 用方法super()显示 C166. 向窗口中加菜单,具体做法是() A. 创建一个菜单条(Menubar)对象作为一个菜单B. 创建一个菜单(Menu)对象作为一个菜单C. 先创建一个菜单条(Menubar)对象,再创建一个菜单(Menu)对象,将菜单对象加入菜单条对象 D. 创建窗口时直接用方法super()设置菜单 C167. 往一个菜单中加一个菜单项,做法是() A. 将菜单项直接加到菜单条中B. 将菜单项加到一个菜单中C. 创建一个菜单时将菜单项作为参数D. 上述三种方法任一种都可以B168. 设置一个菜单项不可选择,可使用方法() A. setVisible(false) B. setEnabled(false) C. setItem(String s) D. 只要有菜单项就可选择B169. 选择一个菜单项,可产生的事件是() A. ItemEvent B. ActionEvent C. TextEvent D. ContainerEvent B。
java⾯向对象总结(⼀)1. 对象的概念及⾯向对象的三个基本特征⾯向对象的三⼤核⼼特性⾯向对象开发模式更有利于⼈们开拓思维,在具体的开发过程中便于程序的划分,⽅便程序员分⼯合作,提⾼开发效率。
⾯向对象程序设计有以下优点。
1. 可重⽤性:它是⾯向对象软件开发的核⼼思路,提⾼了开发效率。
⾯向对象程序设计的抽象、继承、封装和多态四⼤特点都围绕这个核⼼。
2. 可扩展性:它使⾯向对象设计脱离了基于模块的设计,便于软件的修改。
3. 可管理性:能够将功能与数据结合,⽅便管理。
该开发模式之所以使程序设计更加完善和强⼤,主要是因为⾯向对象具有继承、封装和多态 3 个核⼼特性。
继承性如同⽣活中的⼦⼥继承⽗母拥有的所有财产,程序中的继承性是指⼦类拥有⽗类数据结构的⽅法和机制,这是类之间的⼀种关系;继承只能是单继承。
例如定义⼀个语⽂⽼师类和数学⽼师类,如果不采⽤继承⽅式,那么两个类中需要定义的属性和⽅法.语⽂⽼师类和数学⽼师类中的许多属性和⽅法相同,这些相同的属性和⽅法可以提取出来放在⼀个⽗类中,这个⽗类⽤于被语⽂⽼师类和数学⽼师类继承。
当然⽗类还可以继承别的类,学校主要⼈员是⼀个⼤的类别,⽼师和学⽣是学校主要⼈员的两个⼦类,⽽⽼师⼜可以分为语⽂⽼师和数学⽼师两个⼦类,学⽣也可以分为班长和组长两个⼦类。
使⽤这种层次形的分类⽅式,是为了将多个类的通⽤属性和⽅法提取出来,放在它们的⽗类中,然后只需要在⼦类中各⾃定义⾃⼰独有的属性和⽅法,并以继承的形式在⽗类中获取它们的通⽤属性和⽅法即可。
封装性封装是将代码及其处理的数据绑定在⼀起的⼀种编程机制,该机制保证了程序和数据都不受外部⼲扰且不被误⽤。
封装的⽬的在于保护信息,使⽤它的主要优点如下。
保护类中的信息,它可以阻⽌在外部定义的代码随意访问内部代码和数据。
隐藏细节信息,⼀些不需要程序员修改和使⽤的信息,⽐如取款机中的键盘,⽤户只需要知道按哪个键实现什么操作就可以,⾄于它内部是如何运⾏的,⽤户不需要知道。
考试宣言: 同学们,考试考多少分不是我们的目的!排在班级多少的名次 也不是我们的初衷!我们考试的目的是要通过考试中的题目.检査大家在这段时间的 学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会 做,又或者做错了,那么不用怕,考完试后,导师讲解的时候你要 注意听!那时候学会了,记住了,也一样不影响你高薪就业!本套题共40道不定项选择题,其中单选30道,多选10道。
单选2 分/题,多选4分/题。
多选题不全对半分,全对满分。
A. 要有子类继承或实现父类中被priva t e 权限修饰的方法可以被子类逍写D. 子类重写接口中的抽象方法,子类的方法权限必须是publ i C 的/ /接口 所有方法前面都是默认publ 1 C ab $ t rac t2.下而关于类的设汁思路描述错误的是{A. °根据需求;^^义类所包含的字段(成员变量)B. 根据而向对象的思想要求,隐藏属性和实现细节之后,可以提供公共的访问方式C. °封装之后的字段在本类内也必须使用get/s et 方法/ /p riva t e 修饰之后可以在本类中直接使用,不需要通过get/se t 方法调用D.按需求可以在类中定义若干构造方法1. 下面描述函数重写错误的是oB. 6子类方法的权限必须大于等于父类的权限dC ・3. 分析如下Java代码,如果想在控制台上输出*、B类的tes t ()方法J则在主函数应填入()。
Class A {pub I i c V 0 id tes t () {Sys t em. out .pr i nt I n (*'A 类的test ()方法"):class B e X ten d s A {publ i c void test () {S ystem.o pri n t 1 n ("B 类的test ()方法");p ublic sta t i c v o id ma in (Strin g args []) {A a = new 3();6 a.t e st ();B . A a = new A {);test ():6 B b = n e w A ();b. t est ();D.new B()・ t e s t ():4. 关于封装下而介绍错误的是()o0 A- ,封装隐藏实现细yr0 B . 封装提高重用性。
C++开发基础(习题卷20)说明:答案和解析在试卷最后第1部分:单项选择题,共59题,每题只有一个正确答案,多选或少选均不得分。
1.[单选题]C++当中,若局部变量和全局变量重名,会发生什么?A)只能访问局部变量B)局部变量会屏蔽全局变量,要使用全局变量,需要使用“::”C)全局变量会屏蔽局部变量,要使用局部变量,需要使用“::”D)只能访问全局变量2.[单选题]对于线性表的描述正确的是()A)一个有限序列,可以为空B)一个有限序列,不可以为空C)一个无限序列,可以为空D)一个无限序列,不可以为空3.[单选题]下列函数原型声明中错误的是( )。
A)void Fun(int x=0, int y=0);B)void Fun(int x, int y);C)void Fun(int x, int y=0);D)void Fun(int x=0, int y);4.[单选题]树的度不为0的结点称为A)根B)叶子C)分支结点D)父结点5.[单选题]已知如下程序:class B{public:B(){}B(int c):count(c){}virtual void print() const=0;private:int count;};class D:public B{public:D():B(0){}void print() const {cout<<""hello""<<endl;}};void main(){D d(10);B *pb;pb = &d; // OKB &cb = d;D dd = *pb; //2 B对象不能转换为DD &cd = cb; //3 B对象不能转换为D&B bb = d; //4 B类,不能实例化抽象类}则在标出的几个语句中,没有错误的是( )。
A)1B)2C)3D)46.[单选题]下列选项中,不属于类模型结构图中的是( )A)类名B)属性C)操作D)对象名7.[单选题]在一棵有n个结点的二叉树中,若度为2的结点数为n2,度为1的结点数为n1,度为0的结点数为n0,则树的最大高度为A)n0+n1+n2B)n1+n2C)n2+1D)18.[单选题]使用派生类的主要原因是( )A)提高代码的可重用性B)提高程序的运行效率C)加强类的封装性D)实现数据的隐藏9.[单选题]下列关于实参和形参说法错误的是( )。
java中this⽤法总结1,当局部变量和成员变量重名的时候,在⽅法中使⽤this表⽰成员变量以⽰区分。
class Demo{String str = "这是成员变量";void fun(String str){System.out.println(str);System.out.println(this.str);this.str = str;System.out.println(this.str);}}public class This{public static void main(String args[]){Demo demo = new Demo();demo.fun("这是局部变量");}}分析:上⾯的类Demo中有⼀个成员变量str和⼀个局部变量str(类⽅法中的形式参数),很显然局部变量和成员变量重名,这个时候⼀般在⽅法中直接使⽤str实际上是使⽤局部变量str,对成员变量str没有任何影响,此时如果需要对成员变量做点什么,就必须使⽤this关键字。
有个问题,如果⽅法中没有str,那么在⽅法中使⽤成员变量str会是什么情况呢?实际上是⽅法内的所有操作都是针对成员变量str的。
java编程思想的84页中部有这样⼀句话:如果在⽅法内部调⽤同⼀个类的另⼀个⽅法,就不必使⽤this。
同样,在⼀个⽅法中如果没有局部变量和成员变量同名,那么在这个⽅法中使⽤成员变量也不必使⽤this,可以运⾏下⾯的代码看看。
class Demo{String str = "这是成员变量";void fun(String str1){System.out.println(str1);System.out.println(str);}}public class This{public static void main(String args[]){Demo demo = new Demo();demo.fun("这是局部变量");}}2,this关键字把当前对象传递给其他⽅法这⾥有个很经典的例⼦,就是java编程思想的85页的例⼦。
JAVA篇:修饰符与接⼝、类、⽅法、成员变量、局部变量、⽅法块或许这是⼀个⽐较轻松简单的知识点,因为只是简单地做⼀个总览对⽐⽽已。
这周⽐较忙,祝我⾃⼰好运。
有关接⼝(interface)的修饰符,其实⼀般⽤public,也可以不加修饰词(default),或者是使⽤private修饰的声明在类的内部的内部接⼝。
不存在protected修饰的接⼝。
⽽接⼝内部可以有⽤public static final修饰的静态常量,除此之外只存在public修饰的⽅法(接⼝中⽆修饰词的⽅法也默认是public)了。
⽆论是接⼝还是接⼝中的⽅法的abstract修饰词都是隐含的,不必显式地修饰在接⼝或者⽅法前⾯。
类的访问限制修饰词与接⼝⼀样,但是还可以有⾮访问限制修饰词abstract(抽象类)和final(不可继承的类)。
类的成员变量可以被四种访问修饰词修饰,同时也可以被static(静态变量),final(常量),transtient(有关序列化特殊标识变量,具体还需要进⾏了解), volatie(线程共享变量)。
类⽅法除了访问限制修饰符,还可使⽤static(静态⽅法),final(不可改变的⽅法),abstract(抽象的),native(⾮java实现的),synchronized(线程同步),类构造⽅法只可使⽤访问限制修饰符修饰,局部变量只能使⽤final定义常量,⽅法块可以使⽤static定义静态⽅法块和使⽤synchronized 定义线程同步的⽅法块。
java的接⼝、类1、接⼝(interface) 在java中,接⼝是⼀个抽象类型,是抽象⽅法的集合,接⼝通常以interface来声明,接⼝只能包含抽象⽅法和以static\final修饰的变量,⼀个接⼝可以继承(extends)另⼀个接⼝。
接⼝只包含要实现的⽅法,⽽类描述对象的属性和⽅法,两者实现类似但是概念不同。
java提供了类和接⼝之间的实现机制,接⼝不可被实例化,只能被实现(implements),实现接⼝的类必须实现接⼝中全部的抽象⽅法,否则该类必须使⽤abstract声明为抽象类。
linux 内核变量命名规则Linux内核变量命名规则在Linux内核开发过程中,变量命名是非常重要的,它直接影响到代码的可读性和可维护性。
为了使代码结构清晰、易于理解和维护,Linux内核遵循了一套严格的变量命名规则。
本文将介绍Linux内核变量命名规则的几个重要方面。
一、变量命名风格在Linux内核中,变量命名使用的是蛇形命名法(snake_case),即单词之间使用下划线进行分隔。
变量名应该尽量简洁,同时要具备一定的描述性,能够清晰地表达变量的用途。
例如,可以使用"page_count"表示页面计数。
二、变量作用域在Linux内核中,变量的作用域分为全局变量和局部变量两种。
全局变量用于在整个内核中共享数据,命名时应使用"global_"作为前缀,例如"global_count";局部变量仅在特定代码块中使用,命名时应使用具有描述性的名称,例如"local_count"。
三、变量类型Linux内核中的变量可以分为多种类型,包括基本类型和自定义类型。
基本类型的命名应该简洁明了,例如"int_size"表示整数大小;自定义类型的命名应该使用具有描述性的名称,能够清晰地表达其作用,例如"struct_person"表示人员结构体。
四、全局常量在Linux内核中,全局常量使用大写字母和下划线命名,例如"MAX_SIZE"表示最大大小。
全局常量的命名应该具备描述性,能够清晰地表达常量的含义。
五、函数名在Linux内核中,函数名应使用动词加名词的形式,能够清晰地表达函数的功能。
函数名应该使用蛇形命名法,并遵循变量命名的规则,例如"get_page_count"表示获取页面计数的函数。
六、宏定义在Linux内核中,宏定义使用大写字母和下划线命名,例如"#define MAX_SIZE 100"表示最大大小为100。
局部变量在c语言中的名词解释局部变量是C语言中的一个重要概念,它在程序中发挥着至关重要的作用。
本文将对局部变量进行详细解释,并探讨它的特点和用法。
一、什么是局部变量?在C语言中,局部变量是在函数内部定义的变量,也可以使用在代码块(block)内部。
与全局变量不同,局部变量只在其所在函数或代码块中可见和有效,超出其作用范围后将被销毁。
可以说,局部变量是一种临时存储数据的变量,作用域有限,仅在其所在的函数或代码块内有效。
二、局部变量的声明和定义局部变量的声明和定义遵循特定的规则。
在函数内部声明局部变量时,必须在变量名前加上数据类型以及可选的修饰符,如下所示:```cdata_type variable_name;```其中,data_type是变量的数据类型,variable_name是变量的名称。
例如,要声明一个整型的局部变量x,可以使用以下语句:```cint x;```声明局部变量并不会为变量分配内存空间,只是说明了变量的数据类型和名称。
变量的内存分配将在变量被定义时进行。
三、局部变量的生命周期局部变量的生命周期指的是变量在程序执行期间存在的时间段。
局部变量的生命周期取决于其所在的代码块或函数的执行情况。
当程序执行到函数内部声明的局部变量时,内存将被分配来存储该变量的值。
当函数执行完毕或代码块执行完毕后,局部变量将被销毁,同时释放占用的内存空间。
需要注意的是,如果局部变量具有静态存储类别(static),则其生命周期会更长,直到程序结束才会被销毁。
静态局部变量通过保留关键字static进行声明。
四、局部变量的作用域局部变量的作用域指的是变量在程序中可访问的范围。
与全局变量不同,局部变量的作用域仅限于其所在的函数或代码块内。
这意味着,除了定义它的函数或代码块外,其他函数或代码块无法直接访问局部变量。
作用域的概念非常重要,它使得程序中不同的变量名可以相同而不会产生冲突。
在一个函数内可以定义多个同名局部变量,它们之间是独立存在的,不会相互影响。
C++复习题一、判断题1、C++不允许函数嵌套定义,也就是说一个函数中不能完整的包含另一个函数。
但可以嵌套调用另一个函数。
(×)2、用class定义的类中,默认的访问权限是public。
(×)3、一个C++类只能有一个构造函数和一个析构函数。
(×)4、一个类的对象允许作为另一个类的成员。
(√)5、数据成员可以是私有的,成员函数不可以是私有的。
(×)6、一个基类可以有多个派生类,一个派生类可以有多个基类。
(√)7、含有纯虚函数的类是抽象类,抽象类能用作其他类的基类,也能在抽象类上创建对象。
(×)8、char *p=“girl”;的含义是定义字符型指针变量p,p的值是字符串”girl”。
9、C++语言只能在编译时出现错误信息,而在连接中不会出现错误信息。
(×)10、一个C++程序中不论main函数在整个程序中的位置如何,总是从main函数开始执行。
11、构造函数和析构函数都可以重载,因为它们都是成员函数(×)12、在公有继承的情况下,基类成员在派生类中的访问权限都为公有的。
(×)13、数据成员可以是私有的,成员函数不可以是私有的。
(×)14、全局变量可以和局部变量重名,且全局变量优先。
(√)15、设有数组定义:char str[]=“hello”;则数组所占的空间是5个字节。
16、C++语言只能在编译时出现错误信息,而在连接中不会出现错误信息。
(×)17、continue 和break都可用来实现循环体的中止。
(√)18、C++语言允许函数重载,又允许函数设置默认的参数值。
(√)19、一个类的对象允许作为另一个类的成员。
20、数据成员可以是私有的,成员函数也可以是私有的。
21、含有纯虚函数的类是抽象类,抽象类能用作其他类的基类,也能在抽象类上创建对象。
(×)22、char *p=“girl”;的含义是定义字符型指针变量p,p的值是字符串”girl”。
同名局部变量隐藏同名成员变量
2011-01-27 15:02:36|分类: Java 笔记 |标签:无 |字号大中小订阅package test;
/**
* 同名局部变量隐藏同名成员变量:
* 如果在类中定义的成员变量与局部变量同名,那么在局部变量定义的作用
* 范围之内,显示的同名变量的值都是局部变量的值.出这这个范围,同名
* 变量的值就是成员变量的值.
* 如果要在同名的局部变量作用范围之内使用同名成员变量必须在前面加上
this
* @author fhd001
*/
public class FieldTest {
//成员变量
int n = 45;
public static void main(String[] args) {
FieldTest ft = new FieldTest();
ft.test();
}
private void test(){
if(true){
int n = 30;
//这里n的值为局部变量的值.
System.out.println("n = "+n);
//如果一定要使用成员变量n,必须使用this
System.out.println("n = "+this.n);
}
//在同名局部变量作用域之外n的值就是成员变量值System.out.println("n = "+n);
}
}
n = 30
n = 45
n = 45。