day08总结

1.如何制作帮助文档

			(1)写一个类
			(2)加入文档注释
			(3)通过javadoc工具生成即可
								格式:javadoc -d 目录 -author -version 文件名.java

2.通过JDK提供的API学习了Math类

			(1)API:Application Programming Interface  即应用程序编程接口
			(2)如何使用呢?
								A:在显示--索引中查找要搜索的类名
								B:首先看包,只有java.lang包下的类不需要导包
								C:看简单的类的解释和说明
								D:看版本,其中说明了该类是从哪个JDK版本开始才能使用的
								E:看类的结构:
												成员变量------->字段摘要
												构造方法------->构造方法摘要
												成员方法------->方法摘要
								F:学习构造方法
												有构造方法摘要:就创建对象
												无构造方法摘要:成员可能都是静态的
								G:看成员方法
												左边:	是否静态:如果是静态就可以通过类名调用
															返回值类型:返回什么就用什么类型接收
												右边:看方法名:名字别写错
															参数列表:数量,类型
			(3)Math类
								A:是针对数学进行操作运算的类
								B:没有构造方法,因为成员都是静态的
								C:产生随机数
											public static double random():[ 0.0,1.0)

3.代码块

			(1)用{}括起来的代码
			(2)分类
								A:局部代码块
											位于方法内的代码块,用于限定变量的生命周期,及早释放,提高内存利用率
								B:构造代码块
											把多个构造方法中相同的代码可以放到这里
											位于类中成员变量位置,每调用一次构造方法就会执行一次
								C:静态代码块
											位于类中成员变量位置,并用static修饰
											只在类加载的时候执行一次,之后不再执行
											可用于对类的初始化
								D:同步代码块(多线程再讲)
			(3)顺序:
								静态代码块 > 构造代码块 > 构造方法

4.继承

	(1)把多个类中相同的成员提取出来定义到一个独立的类中,然后让这多个类和该独立的类产生一个关系,这多个			
			类就具备了这些内容。这个关系就是继承。
			(2)java中如何表示继承呢?
								格式:   class  子类名  extends  父类名 {.....}
			(3)继承的好处
								A:提高了代码的复用性
								B:提高了代码的维护性
								C:让类与类产生了关系,是多态的前提
			(4)继承的弊端
								A:让类的耦合性增强,这样某个类的改变就会影响其他和该类相关的类
												开发原则:低耦合,高内聚
												耦合:类与类的关系
												内聚:自己完成某件事情的能力
								B:打破了封装性
			(5)Java中继承的特性
								A:Java中类只支持单继承
								B:Java中可以多层(多重)继承,形成继承体系
			(6)继承的注意事项
								A:子类不能继承父类的私有成员
								B:子类不能继承父类的构造方法,但是可以通过super去访问
								C:不要为了部分功能而去继承
			(7)Java继承中的成员关系
								A:成员变量
												子类中的成员名称和父类中的成员变量名称不一样:这个简单,该用谁用谁
												子类中的成员名称和父类中的成员变量名称一样:就近原则
															子类的方法访问变量的查找顺序:
																	a:先在子类的局部范围找,找到就用
																	b:在子类的成员范围里找,找到就用
																	c:在父类的成员范围里找,找到就用
																	d:再找不到,直接报错
								B:构造方法
												a:子类的构造方法会默认先访问父类的无参构造方法
																	这是为了子类访问父类数据之前先进行父类数据的初始化
												b:父类中如果没有无参构造方法,怎么办
																	子类通过super去显示的调用父类带参构造方法
																	子类通过this调用本身的其他构造,但一定要有一个去访问父类的带参构造方法
								C:成员方法
												子类中的成员方法和父类中的成员方法名称不一样:这个简单,该用谁用谁
												子类中的成员方法和父类中的成员方法名称一样:使用子类自己的成员方法
															通过子类的对象访问子类的一个方法的查找顺序:
																	a:先在子类里找,找到就用
																	b:在父类里找,找到就用
																	c:再找不到,直接报错

5.自己制作的数组工具类
day08总结
6.自己写的一些案例代码

/*
根据案例代码的输出结果
查看代码块的先后顺序

结果是:
	我是CodeTest类中的静态代码块
	我是main方法
	我是Code类中的静态代码块
	我是Code类中的构造代码块
	构造方法
	我是Code类中的构造代码块
	构造方法

主要是记住第二个到底是谁先执行,容易出错。
*/
class Code{
	static{
		System.out.println("我是Code类中的静态代码块");
	}
	{
		System.out.println("我是Code类中的构造代码块");
	}
	public Code(){
		System.out.println("构造方法");
	}
}
class CodeTest{
	static {
		System.out.println("我是CodeTest类中的静态代码块");
	}
	public static void main(String[] args){
		System.out.println("我是main方法");
		Code c1 = new Code();
		Code c2 = new Code();
	}
}
/*
学生类和老师类
*/
class Person{
	//姓名
	private String name;
	//年龄
	private int age;
	//无参构造方法
	public Person(){}
	public Person(String name,int age){
		this.name = name;
		this.age = age;
	}
	//setXxx()和getXxx()方法
	public void setName(String name){
		this.name = name;
	}
	public void setAge(int age){
		this.age = age;
	}
	public String getName(){
		return name;
	}
	public int getAge(){
		return age;
	}
}
class Student extends Person{
	public Student(){}
	public Student(String name,int age){
		//this.name = name;错误的
		//this.age = age;错误的
		
		super(name,age);
	}
}
class Teacher extends Person{
	public Teacher(){}
	public Teacher(String name,int age){
		//this.name = name;错误的
		//this.age = age;错误的
	
		super(name,age);
	}	
}
class ExtendsTest{
	public static void main(String [] args){
		Student s1 = new Student();
		s1.setName("李雷");
		s1.setAge(21);
		System.out.println(s1.getName()+"---"+s1.getAge());
		
		Student s2 = new Student("韩梅梅",18);
		System.out.println(s2.getName()+"---"+s2.getAge());
		
		Teacher t1 = new Teacher();
		t1.setName("张三");
		t1.setAge(45);
		System.out.println(t1.getName()+"---"+t1.getAge());
		
		Teacher t2 = new Teacher("张三",45);
		System.out.println(t2.getName()+"---"+t2.getAge());
	}
}