文档库 最新最全的文档下载
当前位置:文档库 › 达内JAVA笔记

达内JAVA笔记

第一天笔记:
1.现实世界是由很多对象组成的
2.现实世界是先有对象,再抽出类
代码中先创建类,再创建对象
3.一个类可以创建多个对象
同一个类的多个对象,结构相同,数据不同
4.类是一种数据类型
只能包含:
1)描述对象所共有的特征:------变量
属性-----静的
2)对象所共有的行为:----------方法
行为-----动的
5.new后,成员变量有默认值
6.创建对象语法:
类名 引用 = new 类名();
其中:new 类名()是在创建对象
因对象为数据,所以声明引用来指代数据
7.访问成员变量、访问方法
----通过点来操作,语法:
引用.成员变量
引用.方法名();
8.基本类型之间画等号----在赋值
------身份证复印件
引用类型之间画等号----指向同一个对象
------房子钥匙
9.null:空,表示没有指向对象
若引用的值为null,则不能再进行点操作,
否则会出现NullPointerException异常

第二天笔记:
java建议:
1个文件只包含1个类

java规定:
java中一个文件可以包含多个类,
但是,public的类只能有1个,
并且,public的类必须与文件名相同
语法:
1.class---成员变量、方法
2.测试类---main(){创建对象}
构造方法:
1.构造方法常常用于给成员变量初始化
2.与类同名,没有返回值类型
3.构造方法是在创建对象时被自动调用
4.若自己不写构造方法,
则编译器默认给一个无参构造,
若自己写了,则不再默认提供无参构造
5.构造方法可以重载

this:
1.this指代当前对象,谁调指的就是谁
2.用法:
this.成员变量---访问成员变量
this.方法()-----访问方法
this()--------调构造方法

第三天
回顾:
1.方法的重载
签名:方法名+参数列表
重载:同一个类中,方法名相同,参数列表不同
2.构造方法
常常初始化成员变量
与类同名,没有返回值类型
创建对象(new)时被自动调用
自己不写,默认给一个无参的,自己写则不给了
可以重载
3.this:指代当前对象,哪个对象调指的就是哪个对象
this.成员变量
this.方法()
this()-------调用构造方法
类中的方法,只要用到了成员变量,
前面默认都有this
4.引用类型数组
int[] arr = new int[4];
Cell[] cells = new Cell[4];
int[][] cells = new int[4][];

第四天
回顾:
1.堆(new出来的对象和成员变量)、栈(调用的方法和当前方法的局部变量)、方法区(class文件内容,方法)
2.继承:避免代码重复 单一继承,传递性
子类 extends 父类
子类具有本类成员以及父类成员
new 子类();----调子类构造(之前,先调父类)
super();
3.向上造型:父类引用指向

子类对象
注意:能点出来什么,看类型

正课:
1:方法的重写
发生在父子类之间,方法名相同,参数列表相同
重写方法被调用时,看对象的类型
2:重写与重载的区别
重写:在父子类中,方法名相同,参数列表相同,运行期绑定,根据对象的类型调用不同的方法
重载:在一个类中,方法名相同,参数列表不同,编译器绑定,根据引用类型绑定不同的方法
3:package:
作用:避免类的命名冲突
包名可以有层次结构
建议:包名所有字母都小写
类的完全限定名:包名.类名
import:
作用:声明类/引入类
同包中的类可以直接访问
不同包中的类想访问:
先用import声明类在使用(建议)
类的全称-----太繁琐(不建议)
4:访问修饰符:
public:公开的,任何类
private:私有的,本类
protected:受保护的,本类,子类,同包类
默认:本类,同包类
类的访问修饰:public和默认的
类的成员访问修饰:如上4种都可以
5:static 静态的
静态变量:由static修饰;属于类的,只有一份;常常通过“类名.”来访问;何时用?所有对象的数据
都一样时使用
静态方法:由static修饰;属于类的,只有一份;常常通过“类名.”来访问;没有隐式的this传递,静态
方法不能直接访问实例成员;何时用?方法的操作仅与参数相关而与对象无关
静态块:由static修饰;属于类的,类被加载期间自动执行,类只被加载一次,所以静态块;
也只执行一次;何时用?常常用于加载静态资源(图片,音频,视频)

成员变量:
实例变量:属于对象的,在堆中;有几个对象就有几个实例变量;必须通过”对象名.“来访问
静态变量:属于类,在方法区;只有一份;通过“类名.”来访问
6:final不能变
修饰变量:变量不能被改变
修饰成员变量:声明的同时初始化final int a=5;构造方法中初始化;final int b; Ooo{b=5}
修饰局部变量:只要在用之前赋值即可,不用可以不赋值 final int a;
修饰方法:方法不能被重写
修饰类:类不能被继承

第五天:抽象类、接口、内部类
1、static final常量
声明的时候必须初始化
不能改变,通过类名访问
建议:常量名全部大写
编译时会自动替换为具体的值
2、抽象方法
有abstract修饰
只有方法的定义,没有方法的实现(大括号都没有)
3、抽象类
由abstract修饰
包含抽象方法的类必须是抽象类
不包含抽象方法的类也可以申明为抽象类-----我乐意
抽象类不能被实例化
抽象类是需要被继承的,子类:
重写所有抽象方法

----------常用
也可以申明为抽象类--------不常用
抽象类的意义
包含公共的属性和行为,被子类所共享---代码重用
为所有子类提供一种公共的类型-----向上造型
包含抽象方法,为子类提供一个统一的入口,子类有不同的实现
4、接口
是一个标准,规范
遵守了这个标准就能干某件事------API后了解
是由interface定义
只能包含常量和抽象方法(默认有public static final、public abstract)
接口不能被实例化
接口是需要被实现/继承的,实现类/子类:必须重写接口中的所有抽象方法
一个类可以实现多个接口,用逗号分隔;若又继承又实现,应先继承后实现extends在前implements在后
实现接口用implements
接口可以继承接口

第六天
多态
意义:
同一类型的引用指向不同的对象时,有不同的实现----行为的多态
同一对象有不同的造型时,有不同的功能------------对象的多态
向上造型:
父类型的引用指向子类的对象
能造型成的类型有:
父类型;实现的接口
能点出来什么看引用的类型
强制类型转换,成功的条件:(父类比子类大)
引用所指向的对象就是该类型
引用所指向的对象实现了该接口
建议在强制类型转换前通过instanceof来判断引用是否是某个类型
返回Boolean结果
强转成功的条件是instanceof返回true
内部类
成员内部类:不太常用
类中套类,外面的叫外部类,里面的叫内部类
内部类通常只服务于外部类,对外不具备可见性
内部类对象通常在外部类中创建的
内部类中可以直接外部类的成员(包括私有的),内部类中有个隐式的引用指向创建他的外部类
语法:外部类名.this.外部类成员
匿名内部类:比较常用
如果想创建一个类的对象,并且对象只被创建一次,此时,该类不必命名,称为匿名内部类
在匿名内部类中想访问外部类中的数据,该数据必须是final修饰的
面向对象总结


API文档第一天
字符串基本操作



相关文档