A:简答题
1、 构造方法的作用是什么?构造方法的特点是什么?构造方法的注意事项?构造方法中可不可以写return语句呢?
作用:给对象中的成员进行初始化;特点:存在类中,方法名和类名相同,没有返回值类型,也没有void;注意事项:一但提供了有参构造,默认的空参构造就没有了;不可以写return语句,因为没有返回值类型;
2、 静态代码块和构造代码块的特点分别是什么?
静态代码块:被static修饰的代码块—static{},随着类(.class)的加载而加载,最优先执行,而且只执行一次,只有JVM能调用。
构造代码块:定义在类中方法外,创建对象时就会执行,而且优先于方法执行,每次创建对象时都会执行。
3、 静态变量与成员变量的区别?
静态变量:定义类中方法外,被static修饰;静态变量属于类;存在于方法区的静态区,随着类的加载而加载,随着类的卸载而卸载;用类名调用。
成员变量:定义在类中方法外的变量;存在于堆内存;随着对象的创建而产生,随着对象的消失而消失;属于对象,可以叫做实例变量;通过对象调用。
4、 请说明一个对象的创建过程做了哪些事情?
Student s = new Student();
a.加载Student.class文件进内存
b.在栈内存中为s开辟空间
c.在堆内存中为Student对象开辟空间
d.对学生对象的成员变量进行默认初始化
e.对成员变量进行显示初始化
f.通过构造方法对学生的成员变量赋值
g.对象完成初始化后,把对象的地址赋值给s变量
B:看程序写结果(写出自己的分析理由),程序填空,改错,看程序写结果。
1、 请补全下面程序中横线位置的代码(可以编写多行代码)
public class ____________{
int x, y;
public Myclass( int i, _______) {
x=i;
y=j;
}
}
//int j
2、写出下面程序的执行结果,如有错误,请指出错误原因
class Demo {
int x;
String s;
float f;
boolean[] b = new boolean[5];
public static void main(String[] args){
System.out.println(x);
System.out.println(s);
System.out.println(f);
System.out.println(b[2]);
}
}
main方法中的结果不能直接打印,要对类中的成员变量进行初始化
3、给出以下代码,请问该程序的运行结果是什么?
class Demo {
static int i=1, j=2;
static {
display(i);
}
public static void main(String[] args) {
display(j);
}
public static void display(int n) {
System.out.println(n);
}
}
1
2
4.给出以下代码,请问该程序的运行结果是什么?
class Demo {
static int i = 1;
static {
++i;
}
public static void main(String[] args) {
increment(i, 5);
display(i);
}
public static void increment(int n, int m){
n += m;
}
public static void display(int n) {
System.out.println(n);
}
static {
++i;
}
}
3
5、给出以下代码,请问该程序的运行结果是什么?
public class Demo {
static int total = 10;
public static void main(String[] args){
new Demo();
new Demo();
}
public Demo(){
int temp = this.total;
if (temp++ > 5) {
System.out.println(temp);
}
}
}
11
11
E:编程题
1、 定义标准手机类并进行测试
public class Phone {
public static void main (String[] args) {
MyPhone myPhone = new MyPhone(4555, "华为", "白色");
System.out.println(myPhone.getColor());
System.out.println(myPhone.getName());
System.out.println(myPhone.getPrice());
MyPhone.GN();
}
}
class MyPhone{
double price;
String name;
String color;
static void GN(){
System.out.println("玩游戏");
System.out.println("打电话");
}
public MyPhone(){
}
public double getPrice () {
return price;
}
public void setPrice (double price) {
this.price = price;
}
public String getName () {
return name;
}
public void setName (String name) {
this.name = name;
}
public String getColor () {
return color;
}
public void setColor (String color) {
this.color = color;
}
public MyPhone (double price, String name, String color) {
this.price = price;
this.name = name;
this.color = color;
}
}
2、 编写Java程序,完成随机数小游戏
import java.util.Scanner;
public class GuessName {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int random = (int)(Math.random()*100+1);
//System.out.println(random);
for (int i = 0; i < 100; i++) {
System.out.println("请输入一个1到100的整数");
int guessNum=sc.nextInt();
if(guessNum>random){
System.out.println("你猜大了");
}else if(guessNum<random){
System.out.println("你猜小了");
}else{
System.out.println("你猜对了");
break;
}
}
}
}