1,写出程序,定义Person类
a)在Person类中定义两个字段:私有访问权限类型为String的name字段.私有访问权限类型为int的age字段;
b)在Person中定义两个构造器:一个空参构造器,一个带参数构造器给name和int赋值;
c)为Person类定义name和age属性的访问器和修改器方法;在定义age修改器的时候要规范age的值,数值规范0-140,其他值输入时控制台提示’年龄非法’
d)重写toString方法,返回字符还如“Name:jack Age:20”
public class Person {
/**
*私有
* 张佳祺
* 2018.6.20
*/
private String name;
prot
*空构造器
* 张佳祺
* 2018.6.20
*/
public Person(){};
public Person(String name,int age){
this.name = name;
this.age = age;
}
/**
*给name和age赋值
* 张佳祺
* 2018.6.20
*/
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
/**
*判断
* 张佳祺
* 2018.6.20
*/
public void setAge(int age){
if(age <=0 || age > 400){
System.out.printin("非法年龄")
}else{
this.age = age;
}
}
/**
*重写toString方法
* 张佳祺
* 2018.6.20
*/
public String toString(){
return "Name:" + name +",Age" + age;
}
}
2.在程序中定义Student类 Student类继承person类
a)在Student类中定义一个私有访问权限的school字段
b)在Student中定义一个构造器,用于给name.age.school赋值,在构造器中要调用父类的带参构造器;
/**
*继承person类
* 张佳祺
* 2018.6.20
*/
public class Student extends Person{
private String school;
public Student(String school){
super(name,age);
this.school=school;
}
public String getSchool(){
return school;
}
public void setSchool(String school){
this.school=school;
}
}
3、定义一个Client类
a)常见一个Person对象,它的name属性值为"Jack", age属性值为“20",对象变量名为jack;
b)调用 jack对象的toString方法,在控制台打印输出。
public class Client {
public static void main(String[] args) {
Person jack = new Person();
jack.setName("jack");
jack.setAge(20);
System.out.println(jack.toString());
}
}
第二分:简答题
1、JDK、 JRE、 JVM分别是什么?他们之间的关系是什么?
jdk是java工具开发包
jre是java运行环境
jvm是java虚拟机
jdk包含jre,jre包含jvm
JDK是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
JRE是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JVM是整个java实现跨平台的最核心的部分,能够运行以Java语言写的程序。
2、 Java支持的数据类型有哪些?什么是自动拆装箱?
基本数据类型
byte short int long
布尔
字符值char
浮点类型float double
引用数据类型 类,接口,数组
自动拆装箱是 基本数据类型和引用数据类型自动切换
3、什么是面向对象编程?面向对象编程的基本特征有哪些?请分别阐述对这些基本特征的理解。
面向对象编程:
在完成一件事情时,会将事情中的实体对象抽象出来,形成「类」的概念,事情的完成是通过类的对象之间发生关系去实现的。
基本特征有封装,多态,继承
封装:隐藏类方法,让使用者只能通过预先设定的方法来访问
多态:让一个方法遇见不同形态的对象做出不同的反应
继承:实现软件的复用的重要手段 子类可以访问父类的成员变量
4、 能否在static环境中访问非static 变量?说明理由。
statc变量在java中属于类,在类的实例中他们的值都是一样的,非静态变量他的值属于实例的,要new一个出来值才会实现
5、 我们说方法的参数传递是值传递,类变量在传递的时候,传递的是其引用地址,请简要说明你对这句话的理解,
可以图示和代码的方式解释。
副本的参数传递是拷贝值(基本数据类型是拷贝他本身的值,引用数据类型是拷贝他对象的值)副本
方法的传递都是值传递
6、Jave中的Overriding和Overloading是什么意思? 、
Overriding方法重载 如果在一个类中多个方法名相同但形参列表不同。
Overloading方法重写 发生在子类父类中间也叫 方法覆盖,当子类要修改父类的某个方法时叫 方法重载
7、请手写一个饿汉式的Singleton类
public class Singleton{
private static final Singleton instance = new Singleton();
private Singleton(){}
public static Slingleton getInstance(){
return instance;
}
}
a)在Person类中定义两个字段:私有访问权限类型为String的name字段.私有访问权限类型为int的age字段;
b)在Person中定义两个构造器:一个空参构造器,一个带参数构造器给name和int赋值;
c)为Person类定义name和age属性的访问器和修改器方法;在定义age修改器的时候要规范age的值,数值规范0-140,其他值输入时控制台提示’年龄非法’
d)重写toString方法,返回字符还如“Name:jack Age:20”
public class Person {
/**
*私有
* 张佳祺
* 2018.6.20
*/
private String name;
prot
*空构造器
* 张佳祺
* 2018.6.20
*/
public Person(){};
public Person(String name,int age){
this.name = name;
this.age = age;
}
/**
*给name和age赋值
* 张佳祺
* 2018.6.20
*/
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
/**
*判断
* 张佳祺
* 2018.6.20
*/
public void setAge(int age){
if(age <=0 || age > 400){
System.out.printin("非法年龄")
}else{
this.age = age;
}
}
/**
*重写toString方法
* 张佳祺
* 2018.6.20
*/
public String toString(){
return "Name:" + name +",Age" + age;
}
}
2.在程序中定义Student类 Student类继承person类
a)在Student类中定义一个私有访问权限的school字段
b)在Student中定义一个构造器,用于给name.age.school赋值,在构造器中要调用父类的带参构造器;
/**
*继承person类
* 张佳祺
* 2018.6.20
*/
public class Student extends Person{
private String school;
public Student(String school){
super(name,age);
this.school=school;
}
public String getSchool(){
return school;
}
public void setSchool(String school){
this.school=school;
}
}
3、定义一个Client类
a)常见一个Person对象,它的name属性值为"Jack", age属性值为“20",对象变量名为jack;
b)调用 jack对象的toString方法,在控制台打印输出。
public class Client {
public static void main(String[] args) {
Person jack = new Person();
jack.setName("jack");
jack.setAge(20);
System.out.println(jack.toString());
}
}
第二分:简答题
1、JDK、 JRE、 JVM分别是什么?他们之间的关系是什么?
jdk是java工具开发包
jre是java运行环境
jvm是java虚拟机
jdk包含jre,jre包含jvm
JDK是整个Java的核心,包括了Java运行环境JRE、Java工具和Java基础类库。
JRE是运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
JVM是整个java实现跨平台的最核心的部分,能够运行以Java语言写的程序。
2、 Java支持的数据类型有哪些?什么是自动拆装箱?
基本数据类型
byte short int long
布尔
字符值char
浮点类型float double
引用数据类型 类,接口,数组
自动拆装箱是 基本数据类型和引用数据类型自动切换
3、什么是面向对象编程?面向对象编程的基本特征有哪些?请分别阐述对这些基本特征的理解。
面向对象编程:
在完成一件事情时,会将事情中的实体对象抽象出来,形成「类」的概念,事情的完成是通过类的对象之间发生关系去实现的。
基本特征有封装,多态,继承
封装:隐藏类方法,让使用者只能通过预先设定的方法来访问
多态:让一个方法遇见不同形态的对象做出不同的反应
继承:实现软件的复用的重要手段 子类可以访问父类的成员变量
4、 能否在static环境中访问非static 变量?说明理由。
statc变量在java中属于类,在类的实例中他们的值都是一样的,非静态变量他的值属于实例的,要new一个出来值才会实现
5、 我们说方法的参数传递是值传递,类变量在传递的时候,传递的是其引用地址,请简要说明你对这句话的理解,
可以图示和代码的方式解释。
副本的参数传递是拷贝值(基本数据类型是拷贝他本身的值,引用数据类型是拷贝他对象的值)副本
方法的传递都是值传递
6、Jave中的Overriding和Overloading是什么意思? 、
Overriding方法重载 如果在一个类中多个方法名相同但形参列表不同。
Overloading方法重写 发生在子类父类中间也叫 方法覆盖,当子类要修改父类的某个方法时叫 方法重载
7、请手写一个饿汉式的Singleton类
public class Singleton{
private static final Singleton instance = new Singleton();
private Singleton(){}
public static Slingleton getInstance(){
return instance;
}
}