1.类和对象是什么关系?类的命名规范是什么?
类是对象的抽象、对象是类的具体的实例。首先要符合标识符的定义,在实际开发中,我们一般使用驼峰命名方式定义类名,并且首字母大写。
2.类的成员有哪些?用于成员变量的修饰符有哪些?
成员变量、方法、构造器、代码块;
public、protected、private、static、final
3.成员变量包含哪些?命名规范分别是什么?
类变量(静态变量):符合标识符定义规则,在开发中,一般全部大写,多个单词之间用_
实例变量:符合标识符定义规则,开发中,一般用驼峰命名,首字母小写
4.请书写定义方法的语法?
[修饰符] 返回值数据类型 方法名(参数列表) {
执行语句;
}
5.请书写构造器定义的语法?构造器的用途是什么?
[修饰符] 类名(参数列表) {
执行语句;
}
给类创建对象的
做初始化工作(例如初始化实例变量的值)
6.请简述你对this的理解?写出使用this调用成员变量、方法、构造器的代码示例
在类定义中this没有特殊意义,再具体使用中,在方法的调用中出现了this,这个this代表当前调用该方法的对象。
public class Client {
private String stu;
public Client(String stu) {
this.stu = stu;
}
public void fun() {
System out println(this.stu);
}
}
7.方法的参数其实传递的是什么类型的数据?如果传入的是基本数据类型,是否原数据的值会发生改变?如果传入的是引用数据类型呢?阐述原因。
传递的值类型;如果传入的是基本数据类型,原数据的值不会发生改变,如果是引用数据类型会改变,因为方法参数传递是“拷贝值(如果是基本数据类型拷贝本身的值,如果是引用数据类型拷贝的是对象的引用、地址)的副本”
8.方法签名是什么意思?
只包含方法名和参数列表
9.什么是方法重载?
如果在一个类中出现多个方法名一样,参数列表不一样的情况,我们把这样的方法称为方法的重载。
重载的意义是这些方法实现的功能基本一致,但是传入的参数可能不一样。
10。成员变量的命名规则是什么?(示例变量和静态变量)
示例变量:符合标识符定义的规范,在开发中,一般用驼峰命名,首字母小写
静态变量(类变量):符合标识符定义的规范,在开发中,一般用全部大写,多个字母用_
11.请书写标准的对下面两个成员变量的封装方法:
private String name;
private String stuCode;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setStuCode(String stuCode) {
this.stuCode = stuCode;
}
public String getStuCode() {
return this.stuCode;
}
12.在企业开发中包定义的规范是什么?
符合标识符的命名规范,在实际开发中,为了让类有相对唯一性,使用企业的域名倒着写来定义包名,包名全部用小写规范。
com.dodoke.项目名,模块名
13.我们一般在什么情况下使用import语句?如果不使用import语句,有什么其他的解决方案?
如果在一个类中需要引用不在当前类包中的其他类的时候,使用import语句
不使用import使用类全名:类的包名+类名
14.访问控制修饰符有哪些?分别的控制范围是什么?
private:同一个类
default:同一个类,同一个包
protected:同一个类,同一个包,子类
public:所有都可以
15.对象在创建时的成员变量的默认值分别是什么?
数值型:0,字符串:'\u0000',布尔型:false,
引用数据类型:null
16.请阐述你对继承的理解,继承的使用语法,以及子类从父类能继承的内容有哪些?
继承可以提高代码的可复用性。
[修饰符] class 子类名 extends 父类名() {
};
只要不是private定义的成员变量和方法
17.重载和重写是一样的吗?方法重写的意义是什么?
不一样,重写发生在子类和父类中间,重写方法也叫覆盖方法,当子类需要修改父类的某个方法时,需要进行方法重写
18.super一般用在什么场景中?
在子类的构造器需要显示的调用父类的构造器,使用super,只能出现构造器的第一行。
在子类的方法中,需要调用被隐藏的方法(被子类重新的方法)时,需要显示的用super调用原先父类的方法。
19.引用类型的类型转换发生在什么时候,在进行强制转换的时候为什么要使用instanceof运算符,以及instanceof运算符的使用方法是什么?
在强制转换的过程中,难免会发生类似ClassCastException,为了避免,我们需要先使用instanceof运算符对对象的预转换类型做个判断,一旦符合条件才进行转换。
对象 instanceof 类
类是对象的抽象、对象是类的具体的实例。首先要符合标识符的定义,在实际开发中,我们一般使用驼峰命名方式定义类名,并且首字母大写。
2.类的成员有哪些?用于成员变量的修饰符有哪些?
成员变量、方法、构造器、代码块;
public、protected、private、static、final
3.成员变量包含哪些?命名规范分别是什么?
类变量(静态变量):符合标识符定义规则,在开发中,一般全部大写,多个单词之间用_
实例变量:符合标识符定义规则,开发中,一般用驼峰命名,首字母小写
4.请书写定义方法的语法?
[修饰符] 返回值数据类型 方法名(参数列表) {
执行语句;
}
5.请书写构造器定义的语法?构造器的用途是什么?
[修饰符] 类名(参数列表) {
执行语句;
}
给类创建对象的
做初始化工作(例如初始化实例变量的值)
6.请简述你对this的理解?写出使用this调用成员变量、方法、构造器的代码示例
在类定义中this没有特殊意义,再具体使用中,在方法的调用中出现了this,这个this代表当前调用该方法的对象。
public class Client {
private String stu;
public Client(String stu) {
this.stu = stu;
}
public void fun() {
System out println(this.stu);
}
}
7.方法的参数其实传递的是什么类型的数据?如果传入的是基本数据类型,是否原数据的值会发生改变?如果传入的是引用数据类型呢?阐述原因。
传递的值类型;如果传入的是基本数据类型,原数据的值不会发生改变,如果是引用数据类型会改变,因为方法参数传递是“拷贝值(如果是基本数据类型拷贝本身的值,如果是引用数据类型拷贝的是对象的引用、地址)的副本”
8.方法签名是什么意思?
只包含方法名和参数列表
9.什么是方法重载?
如果在一个类中出现多个方法名一样,参数列表不一样的情况,我们把这样的方法称为方法的重载。
重载的意义是这些方法实现的功能基本一致,但是传入的参数可能不一样。
10。成员变量的命名规则是什么?(示例变量和静态变量)
示例变量:符合标识符定义的规范,在开发中,一般用驼峰命名,首字母小写
静态变量(类变量):符合标识符定义的规范,在开发中,一般用全部大写,多个字母用_
11.请书写标准的对下面两个成员变量的封装方法:
private String name;
private String stuCode;
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public void setStuCode(String stuCode) {
this.stuCode = stuCode;
}
public String getStuCode() {
return this.stuCode;
}
12.在企业开发中包定义的规范是什么?
符合标识符的命名规范,在实际开发中,为了让类有相对唯一性,使用企业的域名倒着写来定义包名,包名全部用小写规范。
com.dodoke.项目名,模块名
13.我们一般在什么情况下使用import语句?如果不使用import语句,有什么其他的解决方案?
如果在一个类中需要引用不在当前类包中的其他类的时候,使用import语句
不使用import使用类全名:类的包名+类名
14.访问控制修饰符有哪些?分别的控制范围是什么?
private:同一个类
default:同一个类,同一个包
protected:同一个类,同一个包,子类
public:所有都可以
15.对象在创建时的成员变量的默认值分别是什么?
数值型:0,字符串:'\u0000',布尔型:false,
引用数据类型:null
16.请阐述你对继承的理解,继承的使用语法,以及子类从父类能继承的内容有哪些?
继承可以提高代码的可复用性。
[修饰符] class 子类名 extends 父类名() {
};
只要不是private定义的成员变量和方法
17.重载和重写是一样的吗?方法重写的意义是什么?
不一样,重写发生在子类和父类中间,重写方法也叫覆盖方法,当子类需要修改父类的某个方法时,需要进行方法重写
18.super一般用在什么场景中?
在子类的构造器需要显示的调用父类的构造器,使用super,只能出现构造器的第一行。
在子类的方法中,需要调用被隐藏的方法(被子类重新的方法)时,需要显示的用super调用原先父类的方法。
19.引用类型的类型转换发生在什么时候,在进行强制转换的时候为什么要使用instanceof运算符,以及instanceof运算符的使用方法是什么?
在强制转换的过程中,难免会发生类似ClassCastException,为了避免,我们需要先使用instanceof运算符对对象的预转换类型做个判断,一旦符合条件才进行转换。
对象 instanceof 类
20.附加题:33岁巨蟹座的陆老师在给渡课教育java105班的学员上java课(提示:需要定义的类包括:老师类、学员类、课程类等等,要运用封装的概念,要有类变量的定义。最后需要通过方法在控制台打印出上述语句
package com.dodoke.stu;
public class Teacher {
private String name;
private int age;
String constellation;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getConstellation() {
return constellation;
}
public void setConstellation(String constellation) {
this.constellation = constellation;
}
public Teacher() {
super();
}
public Teacher(String name,int age,String constellation) {
super();
this.name = name;
this.age = age;
this.constellation = constellation;
}
}
public class Student {
private String name;
private String clazz;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getClazz() {
return clazz;
}
public void setClazz(String clazz) {
this.clazz = clazz;
}
public Student() {
super();
}
public class School {
public static final String NAME = "渡课教育";
public School() {
super();
}
}
public class Course {
private String course;
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public Course() {
super();
}
public Course(String course) {
super();
this.course = course;
}
}
public class Client {
public static void main(String[] args) {
Teacher stu = new Teacher("陆老师",33,"巨蟹座");
Student cla = new Student("学员","java105班");
Course cou = new Course("java课");
System.out.println(stu.getAge() +"岁"+ stu.getConstellation() + "的"+
stu.getName() + "在给" + School.NAME + cla.getClazz() + "的" +cla.getName() +
"上" + cou.getCourse());
}
}