0725集合

一、

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 后面的名字 ==》 首字母大写,驼峰标识,见名知意
        变量和方法名 ==》首字母小写,驼峰标识,见名知意
        包名 ===》 公司域名倒过来,点管理每一层目录,所有字母小写
        常量==》所有字母大写,然后用_ 分割 多个单词

 

二、

218f4a7da5a19355646a9437cb54684793e.jpg

三、

01ed26ce37c831e1b4c777ed65b29544a98.jpg

C

四、

f5564b215ff6a913a401753e16f7bf036e7.jpg

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();
		}
	}
	
}

 

转载于:https://my.oschina.net/u/3822073/blog/1863192

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值