6月20日周测

第一部分:编程题

/*@作者名:冒蔡静

*@版本号:2018.6.20

*@类名:Person

**/

public class Person {

/**

 *私有字段name

 *私有字段age

 */

protected String name;

protected int age;

 

/**

 *空参构造器

   */

public Person(){}

 

/**

 *有参构造器 给name int 赋值

   */

 

public Person(String name,int age){

this.name = name;

this.age = age;

//System.out.println("我叫" + this.name + this.age + "");

}

//get set方法

public void setName(String name){

this.name = name;

}

public void setAge(int age){

if(age >0 && age <= 140){

this.age = age;

return;

}

System.out.println("年龄非法");

}

 

//重写toString方法

public String toString(){

return"Name:" + this.name +"Age:" + this.age;

}

}

class Student extends Person{

private String school;

 

/**定义一个构造器

 *用于给name、age、school赋值

 *在构造器中要调用父类的带参构造器

  */

public Student(String name,int age,String school){

super(name,age);

this.school = school;

}

//定义一个空构造器

public Student(){}

 

}

 

class Client {

public static void main(String[] args) {

Student j = new Student();

j.setName("Jack");

j.setAge(20);

System.out.println(j.toString());

}

}

第二部分:简答题

1、JDK、JRE、JVM分别是什么?他们之间的关系是什么?

  JDK Java 语言的软件开发工具包

  JRE是包含JVM标准实现及Java核心类库

JVM一个虚构出来的计算机是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

JDK是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。JRE是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。JVM是整个java实现跨平台的最核心的部分,能够运行以Java语言写的程序。

2、Java支持的数据类型有哪些?什么是自动拆装箱?

基础数据类型:

数值型:

整数型:byte、short、int、long

浮点型:float、double

字符型:char

布尔型:boolean

引用数据类型:类(class)、接口(interface)、数组

自动装箱就是Java自动将原始类型值转换成对应的对象,比如将int的变量转换成Integer对象,这个过程叫做装箱,反之将Integer对象转换成int类型值,这个过程叫做拆箱。因为这里的装箱和拆箱是自动进行的非人为转换,所以就称作为自动装箱和拆箱.

3、什么是面向对象编程?面向对象编程的基本特征有哪些?请分别阐述对这些基本特征的理解。

1)面向对象编程:在完成一件事情时,会将事情中的实体对象抽象出来,形成「类」的概念,事情的完成是通过类的对象之间发生关系去实现的。

2)面像对象编程的基本特征有封装、多态、继承。

3)封装:把成员变量隐藏起来,暴露方法来提供成员的修改和访问

   多态:允许不同类的对象对同一消息作出响应

  继承:对象的一个新类可以从现有的类中派生

4、能否在static环境中访问非static变量?说明理由。

不能访问。因为static变量在Java中是属于类的,它在所有的实例中的值是一样的。当类被Java虚拟机载入的时候,会对static变量进行初始化。如果的代码尝试不用实例来访问非static的变量,编译器会报错,因为这些变量还没有被创建出来,还没有跟任何实例关联上。

5、我们说方法的参数传递是值传递,类变量在传递的时候,传递的是其引用地址,请简要说明你对这句话的理解,可以图示和代码的方式解释。

在传递的参数是基本数据类型时,会把这个参数拷贝一个副本存放在栈区,实际传递的是这个副本,这时在方法中对这个值进行操作与它原本的值没有关系。

如果传递的参数是一个引用数据类型时,传递的是这个这个引用数据类型在堆中的地址,这个地址指向这个引用数据类型,此时在方法中对这个参数进行操作,它的值也会随之改变。

6、Java中的Overriding和Overloading是什么意思?

Overloading:方法重载 如果在一个类中,两个或多个的方法方法名相同但形参列表不同,我们就把它成为方法重载。

Overriding:方法重写 如果在子类中遇到与父类同方法前面的情况,我们就把它称为方法重写。

7、请手写一个饿汉式的Sinleton

public class Singleton{   

    private static final Singleton instance = new Singleton();    

    private Singleton(){}  

    public static Singleton getInstance(){  

        return instance;  

    }  

}  

  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值