Day 01        方法定义格式 
public static 返回值类型(没有返回值写void)方法名(参数列表){//形参 
方法体; 
} 
调用方式: 
有明确返回值类型: 
赋值调用:将方法的返回值赋值给一个变量 
输出调用:使用输出语句直接输出方法的返回值 
直接调用:没法获取方法的返回值 
没有明确返回值类型: 
直接调用 
方法重载:在一个类中有多个重名方法,这些方法参数不同,和返回值无关 
 
形参:方法声明的变量,只能是变量,接受方法调用是传递进来的数据 
 
数组 
是用于存储多个元素的一种容器 
数组的特点 
元素类型必须一致 
定义格式 
动态初始化 
元素类型[]数组名 = new 元素类型[10]; 
静态初始化 
元素类型[]数组名={元素1,元素2,元素3}; 
元素类型[]数组名=new 元素类型[]{元素1,元素2,元素3};标注格式 
 
 
Static 静态关键字 
static:关键字,用来修饰成员变量成员方法 
static:被所有的对象所共享 
可以直接使用类名来调用 
静态所修饰的成员加载优先于对象 
随着类的加载而加载 
调用static修饰变量和方法 
System.out类名.静态成员属性 
Array.toString(arr)类名.静态成员方法 
 
生命周期 
静态成员:随着类的加载而创建,随着成员结束而摧毁 
非静态成员,随着对象创建而创建,随着对象的销毁而销毁 
内存电仪位置不同, 
静态;方法区中类字节码区域的静态区域 
非静态:堆内存 
 
代码块 
局部代码块:存在于方法中,控制变量的生命周期(作用域) 
构造代码块:提取构造方法中的共性,每次创建对象都会执行,并且在构造方法执行之前执行 
静态代码块:随着类的加载而加载,只加载一次.比如加载驱动 
同步代码块; 
 
Day02 
Java特点:只支持单一继承,只能继承一个父类 
Java语音支持多层继承. 
 
子类只能获取父类非私有成员,private 是能访问当前类. 
子父类中成员变量的名字不一样直接获取父类的成员变量 
子父类中成员变量名字是一样的获取的是子类的成员变量 
就近原则:使用最近的 
this:使用本来中的成员方法或变量 
super:使用父类中的成员方法或变量 
如果有局部变量就使用局部变量 
如果没有局部变量,有子类的成员变量就使用子类的成员变量 
如果没有局部变量和子类的成员变量,有父类的成员变量就使用父类的成员变量 
啥都没有会出错. 
 
super:可以获取父类的成员变量和成员方法,用法和this 相似 
 
方法重写:在子父类当中,子类的方法和父类的完全一样(覆盖),子类重写了父类的方法. 
可以调用super.方法名()实现重写和调用父类方法同时实现 
@Override 注解:用于约束被注解的方法必须是重写父类的方法,如果没有这个父类会报错 
注意事项: 
不能重写父类私有方法 
权限必须大于等于父类权限 
 
继承中构造方法的执行顺序 
        在有子父类继承关系的类中,创建子类的对象,调用子类的构造方法 
 
 
 
 
继承的优点 
提高了代码的复用性 
提高了代码的可维护性 
缺点: 
类的耦合性增强了 
开发的原则:高内聚低耦合 
内聚:就是自己完成某件事情的内陆 
耦合:类于类的关系\ 
 
 
匿名对象,是没有变量的引用对象 
应用场景: 
当方法只调用一次的时候可以使用匿名对象 
注意 
匿名对象可以调用成员变量并赋值,但没有意义 
作为参数: 
 
 
final:修饰符,可以用于修饰类,成员方法和成员变量 
final:所修饰的类,不能被继承.不能有子类,不能被重写,是不可修改的,是常量 
 
常量: 
字面值常量:1,2,3 
自定义常量:被final所修饰的变量不可修改 
 
 
 
抽象类 
abstract:关键字,用于修饰方法和类. 
抽象方法:不同类的方法是相似的,但是具体内容又不太一样,所以我们只能抽取他的生命 
没有具体的方法体,没有具体方法体方法的就是抽象方法 
 
Day 03 
接口的成员特点 
只能有抽象方法 
只能使用public&abstract 
注意:接口不能创建对象 
接口和类的关系是实现关系,一个类实现一个接口必须实现它所有的方法 
 
接口和类之间的关系 
类于类:继承关系,单一继承,多层继承 
类与接口:实现关系,多实现 
接口与接口:继承关系,多继承 
 
接口的优点: 
类与接口的关系,实现关系,而且是多实现,一个类可以实现多个接口 
类于类直接是继承关系,java中的继承是单一继承,一个类只能有一个父类 
打破了继承的局限性/ 
 
对外提供规则(USB接口) 
 
降低了程序的耦合性 
 
接口和抽象类的区别 
共性:不断的抽取,抽取出抽象的概念 
区别:与类的关系 
类与接口是实现关系,而且是多实现,一个类可以实现多个接口 
类与抽象类是继承关系,java中的继承是单一继承,一个类只能有一个父类, 
java中的继承是多层继承 
成员 
成员变量: 
抽象类可以有成员变量,也可以有常量 
接口只能有常量 
成员方法 
抽象类可以有抽象方法,可以有非抽象方法 
接口只能有抽象方法,而且方法有默认修饰符public abstract 
构造方法 
抽象类有构造方法,需要初始化成员变量 
接口没有构造反复, 
 
多态 
多态是继封装,继承之后,面向对象的第三大特性 
多态的优缺点: 
缺点:无法直接访问子类特有的成员. 
优点:可以提高可维护性,提供代码的可拓展性.提高代码复用性 
 
Day04 
包的特点 
可以有多层. 
不同包下的文件名可以重复 
 
类的全名:包名,类名 
不同包之间的互相访问 
 
权限修饰符  
public 当前类,相同包下不同类,不同包下的类 
default 当前类  相同包下不同类 
private  
protected  
 
修饰符                类                 成员变量                         成员方法                         构造方法 
public                y                        y                                 y                                y  
default                y                        y                                y                                y 
protected                n                        y                                y                                y 
private                n                        y                                y                                y 
abstract                y                        n                                y                                n 
static                n                        y                                y                                n 
final                        y                        y                                y 
/*常见规则 
以后我们使用public 来修饰类,一个java文件中只能有一个类. 
如果一个文件中有多个类,类名和文件名一样的类名,必须用public修饰,其他的类不能用使用public修饰 
以后所有的成员变量都使用private修饰 
以后所有的方法使用public修饰 
以后所有的构造方法public修饰 
如果你不想让创建对象,使用private*/ 
 
内部类 
成员内部类:类中,方法外 
非静态成员内部类 
静态成员内部类 
创建非静态成员内部类对象 
外部类名.内部类名  对象名 =  new 外部类名().new内部类名(); 
匿名  
 
Day05 
Object类 
成员方法:String to String 
实现方式: 
return getClass().getName+@+Integer.toHexString(hashcode()); 
String toString:返回对象的字符串表示方式 
重写toString()作用.改变对象的字符串显示方式 
 
boolean equals 
 
获取字节码三种方式 
Class 对象.getClass() 
类名.Class 
 
今日总结 
 
迭代器 
作用:变量集合 
并发修改异常: 
原因:迭代集合时改变了集合的长度 
解决: 
不使用 
使用迭代器对象中的修改方法 
泛型 
作用 
约束集合中元素的数据类型 
将运行时发生的类型转换异常提前到了编译时期 
遍历集合的3种方式 
普通for循环 
迭代器 
增强for循环 
优点:快速简便的遍历集合元素 
缺点:不能再遍历过程中修改集合,也没有索引可以使用 
常见的数据结构 
数组 
特点 
长度一旦确定则不可改变 
有整数索引 
只能存储同一个数据类型的元素 
既能存储基本数据类型,又能存储引用数据类型 
增删慢 查询快 
链表 
特点 
增删快,查询慢 
栈 
特点:先进后出 
队列 
特点:先进先出 
增强for循环格式 
for(元素的数据类型 变量名:数组或集合对象){ 
//遍历出来的变量可以直接使用 
} 
 
Collection接口(单列集合体系的顶层) 
  boolean add(E e):添加元素,添加成功返回true,否则false 
  vode clear():清空集合中的元素 
  boolean contains(Object o)判断集合中是否包含指定的对象 
  boolean isEmpty():判断集合中是否没有元素,与null区分 
  boolean remove(Object        o):从集合中删除一个元素,删除成功返回true,否则false 
  int size():获取集合的长度 
  Object[] toArray():将集合转换为Object[]数组 
  Iterator<E>iterator():获取集合的迭代器对象 
     List接口(有序,可重复,有索引) 
void add(int index, E e):添加元素到指定索引上 
E remove(int index):删除索引上的元素,并返回 
E set(int index, E e):修改指定索引上的元素,并返回被替换的元素 
E get(int index):获取指定索引上的元素 
ListIterator listIterator():获取List特有的迭代器对象 
   ArrayList类(底层是数组,查询快,增删慢) 
   LinkedList类(底层是链表,查询慢,增删快) 
void addFirst(E e):添加元素到集合的开头 
void addLast(E e):添加元素到集合的末尾 
E getFirst():获取集合开头的元素 
E getLast():获取集合末尾的元素 
E removeFirst():删除开头的元素,并返回 
E removeLast():删除末尾的元素,并返回 
 
Iterator接口 
boolean hasNext()判断是否有下一个元素 
E next():获取下一个元素 
void remove()删除迭代器返回的最后一个元素 
ListIterator接口 
void add(E e):使用迭代器添加元素到集合 
void remove()使用迭代器删除元素 |   
        
 
    
    
    
     
 
 |