一、
1、类里面有什么?
变量和方法(属性和功能)
2、如何创建对象?
类名 对象名 = new 类名(参数);
3、如何访问类里面的成员?
静态成员可以通过类名.成员名,或对象名.成员名来访问。
非静态成员通过对象名.成员名来访问。
4、构造方法的规则?
与类同名,没有返回值类型
5、构造方法的作用?
创建对象;初始化对象
6、方法重载的定义,方法重写的定义? 构造方法是否能重载?是否能重写?
方法重载:发生在一个类中,方法名相同,参数列表不同(顺序,个数,类型),返回值类型与访问修饰符不做要求
方法重写:发生在有继承关系的子类中。方法名相同,参数列表相同,返回值允许是子类类型。访问修饰符的访问范围要大于等于父类的访问范围
构造方法能重载,不能重写
7、this的意义?super的意义?
this代表当前对象
super代表父类
8、一个类能创建几个对象?
无数个
9、类和对象的关系?
类是对象的模板,对象是类的实例化
10、面向对象的特征?
封装,继承,多态。抽象
11、封装的含义,写法
将类的某些细节隐藏在类内部,不允许外部程序访问。通过该类提供的方法来实现对隐藏信息的操作和访问。即隐藏对象信息,留出访问接口
12、变量的分类?
基本数据类型变量;引用类型变量。
成员变量;局部变量。
13、静态成员和非静态成员的区别?
静态方法里不能访问非静态成员。
静态成员可以通过类名.成员名,或对象名.成员名来访问。
非静态成员通过对象名.成员名来访问。
14、继承的关键字?继承的意义?
extends
继承是从已有的类(父类)中派生出新的类(子类),子类具有父类的属性和行为。继承最重要的意义就是复用父类的代码,减少代码量。
15、继承中的构造规则?
子类在构造自己的时候,先构造父类
如果父类声明了有参构造函数,没有显示声明午餐构造函数,那么子类必须声明有参构造函数,且构造函数第一行是super(参数)
super()调用父类构造方法,this()调用本类构造方法。都必须出现在构造函数的第一行
16、抽象类和接口的区别?
接口只能包含抽象方法,抽象类可以包含普通方法。
接口只能定义静态常量属性,抽象类既可以定义普通属性,也可以定义静态常量属性。
接口不包含构造方法,抽象类里可以包含构造方法。
接口支持多继承,抽象类不支持。
17、final的作用!
修饰的变量不能更改
修饰的方法不能被重写
修饰的类不能被继承
18、定义接口的关键字, 实现接口的关键字,接口是否可以继承接口?
interface
implements
接口可以继承接口
19、代码块的种类,执行顺序?
静态代码块>构造代码块>构造函数>普通代码块
静态代码块:类加载时执行。只执行一次, 如果一个类中有多个静态代码块,按照书写顺序依次执行。 有些代码需要在项目启动的时候就执行,这时候就需要静态代码块。比如一个项目启动需要加载的很多配置文件等资源 。
构造代码块:每次调用构造方法前都会执行,优先于构造方法
局部代码块:用于限定变量生命周期。
20、内部类有几种?
成员内部类:相当于成员变量,里面不能有静态成员
局部内部类:相当于局部成员,访问的变量必须是final的
静态内部类:可以定义静态成员
匿名内部类
21、如何给对象的属性赋值?有几种?
通过set方法赋值
通过构造函数赋值
22、如何判断一个引用类型是不是 另外一个引用类型?
用instanceof
23、你所学过的修饰符,以及用法?
1)修饰类的:
访问修饰符:public 所有可访问
package(默认) 同包可访问
修饰符:abstract
final
2)修饰变量的:
访问修饰符:public ,protected,默认,private
修饰符:static,final
3)修饰方法的:
访问修饰符:public ,protected,默认,private
修饰符:static,final,abstract
4)修饰接口的:
访问修饰符:public 所有可访问
package(默认) 同包可访问
24、java 中包的意义?
包的存在1)、有利于类的查找与管理,按自己的需要给包分类,通常按功能分:vo类、dao类、工具类、service类、controller类等。
2)、解决了类命名时相同的冲突,不能在同一包里定义两个相同类名的类,但是不同包就可以。
3)、保护类中成员变量及其方法。该变量和方法的使用范围取决于访问控制符。
25、目前所学的书写规范?
class 后面的名字 ==》 首字母大写,驼峰标识,见名知意
变量和方法名 ==》首字母小写,驼峰标识,见名知意
包名 ===》 公司域名倒过来,点管理每一层目录,所有字母小写
常量==》所有字母大写,然后用_ 分割 多个单词
二、
三、
C
四、
collection:单个的
List:有序 可以重复
set:无序 不可以重复
map:键值对 值可以重复,键不能重复
五、
public class Worker {
private int age;
private String name;
private double salary;
public Worker (){}
public Worker (String name, int age, double salary){
this.name = name;
this.age = age;
this.salary = salary;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary(){
return salary;
}
public void setSalary(double salary){
this.salary = salary;
}
public void work(){
System.out.println(name + “ work”);
}
}
完成下面的要求
1) 创建一个 List,在 List 中增加三个工人,基本信息如下:
姓名 年龄 工资
zhang3 18 3000
li4 25 3500
wang5 22 3200
2) 在 li4 之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资 3300
3) 删除 wang5 的信息
4) 利用 for 循环遍历,打印 List 中所有工人的信息
5) 利用迭代遍历,对 List 中所有的工人调用 work 方法。
6) 为 Worker 类添加 equals 方法
package com.hw;
public class Worker {
private int age;
private String name;
private double salary;
public Worker() {
}
public Worker(String name, int age, double salary) {
this.name = name;
this.age = age;
this.salary = salary;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public void work() {
System.out.println(name + " work");
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
else if (obj instanceof Worker) {
Worker w = (Worker) obj;
if (w.name.equals(this.name) && w.age == this.age
&& w.salary == this.salary) {
return true;
}
}
return false;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return name + " " + age + " " + salary;
}
}
package com.hw;
import java.util.ArrayList;
import java.util.List;
public class WorkerList {
public static void main(String[] args) {
List list = new ArrayList();
Worker w1 = new Worker("zhangsan",18,3000);
Worker w2 = new Worker("li4",25,3500);
Worker w3 = new Worker("wang5",22,3200);
//将工人加入list
list.add(w1);
list.add(w2);
list.add(w3);
System.out.println(list);
//在李四前 插入赵六
Worker w4 = new Worker("zhao6",24,3300);
list.add(1, w4);
System.out.println(list);
//删除王5
list.remove(3);
System.out.println(list);
//打印工人信息
for(int i=0; i<list.size(); i++){
System.out.println(list.get(i));
}
//迭代遍历,调用work
for(int i=0; i<list.size(); i++){
Object obj = list.get(i);
Worker w = (Worker)obj;
w.work();
}
}
}