JAVA语言学习-Day3
参考教学视频:
Day3
面向对象
什么是面向对象
面向过程:第一步做什么,第二步做什么
面向对象:分类的思维模式,分类然后对某个分类下的细节进行面向过程的思索(以类的形式组织代码,以对象的方式组织(封装)数据)
static:和类一起加载
构造器
- 
必须和类的名字相同 
- 
必须没有返回值类型,也不能写void 
public class person(){
    public person(){}
}
- 
实例化对象 
- 
定义有参构造,显示定义一个无参构造 
- 
使用new关键字,本质是在调用构造器 
封装(高内聚,低耦合)
封装(数据的隐藏):通常,应禁止直接访问一个对象中数据的实际表示,而应通过接口来访问,这称为信息隐藏
属性私有,get/set
意义
- 
提高安全性,保护数据 
- 
隐藏代码实现细节 
- 
统一接口 
- 
增加系统可维护性 
继承
本质是对某一批类的抽象,Java中只有单继承
super:访问父类属性、方法,调用父类的构造器必须在子类的构造器的第一行
方法重写(@override)
非静态方法,子类继承父类,重写父类方法
- 
方法名,参数列表必须相同 
- 
参数列表必须相同 
- 
修饰符范围可以扩大但不能缩小 
- 
抛出的异常范围,可以缩小但不能扩大 
静态方法的调用只和左边,定义的数据类型有关
多态
*动态编译
- 
同一方法可以根据发送对象的不同而采用不同的行为方式 
- 
一个对象的类型是确定的,但可以指向对象的引用的类型有很多 
多态存在的条件
- 
有继承关系 
- 
子类重写父类方法 
- 
父类引用指向子类对象 
多态是方法的多态,属性没有多态性
instanceof和类型转换
obj instanceof String   //false 是否存在父子关系
- 
父类引用指向子类的对象 
- 
把子类转换为父类,向上转型 
- 
把父类转换为子类,乡下转型;强转 
- 
方便方法的调用,减少重复的代码 
static关键字
static和类加载时同步生成
import static java.lang.Math.random
public class test(){
    public staitc void main(){
        random();
    }
}
抽象类
abstract关键字
extends关键字
接口实现多继承
- 
抽象方法,只有方法的名字,没有方法的实现 
- 
不能new抽象类,只能靠子类实现 
- 
抽象类里面可以写普通方法,抽象方法必须在抽象类中 
public abstract void doSomething();
接口的定义和实现
interface关键字
implements关键字
- 
只有规范。约束和实现分离:面相接口编程 
- 
接口中的所有定义都是抽象的 
- 
接口中定义的都是常量public static final 
- 
接口不能实例化,里面没有构造方法 
- 
implements可以实现多个接口 
public abstract void run();
内部类
一个java类中可以有多个class类,但只能有一个public class
- 
成员内部类 通过外部类来实例化内部类 
- 
静态内部类 
- 
局部内部类 方法中定义 
- 
匿名内部类 不用将实例保存到对象中new Apple.eat(); 
异常
- 
异常指程序运行中出现的各种不期而至的情况,如:文件找不到、网络连接失败、非法参数等 
- 
异常发生在程序执行期间,影响了正常的程序执行流程 
- 
检查性异常 
- 
运行时异常 
- 
错误ERROR:错误不是异常,而是脱离程序员控制的问题 
异常处理
try、catch、finally、throw、throws
try{
    System.out.println(1/0);
}catch(ArithmeticException e){
    
}finally{
    
}
自定义异常
继承Exception类
public class MyException extends Exception(){
    private int detail;
    public MyException(int a){
        this.detail = a;
    }
    
Day4
常用类
- 
Object类:hashcode(),toString(),clone(),getClass(),notify(),wait(),equals() 
- 
Math类:常见的数学运算 
- 
Random:生成随机数、UUID 
- 
File类:创建文件、查看文件、修改文件、删除文件 
- 
包装类:自动装箱和拆箱 
- 
Date类:Date,simpleDateFormat,Calender 
- 
String类:不可变性final(操作量较少) 
- 
StringBuffer:可变长(多线程大量数据) 
- 
StringBulider:可变长(单线程大量数据) 
集合框架
- 
Collection:List(ArrayList,LinkedList)、Set(HashSet,TreeSet)、Vector、Stack 
- 
Map:(HashMap,TreeMap) 
- 
泛型 
IO流处理
- 
字节流:OutputStream、InputStream 
- 
字符流:Reader、Writer 
- 
节点流:CharArrayReader、StringReader、pipe(管道流)、PipedOutputStream 
- 
处理流:序列化、Buffer、Data、转换流、Filter、Print 
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号