黑马程序员技术交流社区

标题: 新人报道 [打印本页]

作者: davidzhang    时间: 2019-6-30 11:00
标题: 新人报道

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()使用迭代器删除元素




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2