—————————————————Java面向对象————————————————————
1、 认识类和对像
类是对象的抽象,对象是类的具体实现
类的创建:class是关键字,用于声明自定义类型,类包含属性和方法 对象的定义与使用
类型 变量名=new 类型();//关键字为new,用于创建对象
对象名.属性=值;//属性的赋值
对象名.方法名();//调用属性的方法
方法的定义
访问修饰符类型 返回值类型 方法名(存贮过程、函数){
//方法体
//如果有返回值,必须要有return语句,return的目的要把返回值类型对应的值返回到方法外部
}
有返回值的方法在调用时必须被对应返回值类型接收,否则相当于没有返回值
2、 方法和方法重载
带参方法
返回值类型 方法名(参数列表){
//方法体
}
形参和实参的类型一致,顺序一致,数量也要一致
对象数组
自定义类型[] 数组名=new 类型[长度];
由于对象数组的类型是引用类型,默认值为空(null),必须被初始化
数组名[下标]=new 类型();//对象初始化
基本数据类型和引用数据类型做参数的区别
基本数据类型传递的是值,在方法中改变值不会影响外部的变量
引用数据类型传递的是地址,在方法中改变地址内的值,会影响到外部的变量
构造方法
作用是创建对象,对象初始化:
Public 类名(){} 当有有参构造的时候无参默认方法建议写出来,不然会消失
Public 类名(参数列表){}//可以再对象初始化的同时进行属性赋值
一旦有有参构造,无参构造系统不在默认提空
方法重载
在同一个类中,方法名相同,参数列表不同(类型、数量、顺序)
3 封装的特性
主要解决安全问题
提供对外的输入输出口(setter和getter、构造方法)
构造方法要调用setter来实现封装
访问修饰符
public:全工程=都可见范围最大
protected:包级私有+子类可见
默认:在同一个包的所有类可见
Private:只有本类可见、范围最小
static关键字
加static的属性叫类属性:全局变量,目的就是无论那个对象或者整个类型来改变属性的值,都会对其他对象或者整个类造成影响
加static的方法叫类方法:全局方法,一般用于定义工具方法
静态代码块
只会在第一次访问该类型的时候执行一次
4、继承
关键字和特性
extends,子类对象继承了父类对象的所有内容,但不都可见
静态资源属于类,不属于被继承的范畴
子类无参构造方法默认来自于父类无参
如果父类有有参,但没有无参,子类就无法直接写出无参构造
super的使用
Super.属性一般用于区分子类父类都有的属性
Super.方法()一般用于区分子类父类有相同方法(重写的同时调用父类方法)
super( 。。。)在本类中指定父类的构造方法
5、重写和多态
方法重写的规则
1子类继承父类的前提2方法名相同3、参数列表相同4 、子类方法的返回值类型要与父类的相同或者是其子类5、访问修饰符不能比父类更严格
6、不能扩散异常(把父类方法抛出的异常增大)
7、静态方法不属于对象,不能被继承,像调用需要直接用类名.方法名()、
静态方法不能与普通方法重名
什么是多态
1、父类中的方法被子类重写
2、在别的类中,有一个参数为父类类型的方法,调用了被重写的父类方法
3、调用时,实参时子类对象,那么就会调用该子类对象重写后的方法
6、 抽象和接口
抽像方法和抽象类的定义和特点
1、关键字abstract
2、抽象方法必须在抽象类内,抽象方法没有方法体
3、抽象类不能被实例化
4、抽象类中可以没有抽象方法、可以有普通方法
5、抽象类可以有构造方法,但规范是保证有无参构造
接口的规则
1、接口关键字:interface,实现的关键字是implements,接口之间可以用extends继承
2、接口不能被实例化,因为里面全是公共抽象方法
3、接口中可以有静态方法,但规范不建议
4、接口中的变量全是公共静态变量,一般在工作中一个接口中可以全是常量,没有方法
5、接口用于拓展功能,多个接口可以被一个接口继承,多个接口可以被一个类实现
抽象类和接口的异同点
相同点:都代表抽象层、都不能被实例化,都可以包含抽象方法,都可以实现多态
不同点:
接口不能有构造方法,接口不建议有静态方法
抽象类中可以有普通方法,抽象方法也可以不是公共的
抽象类的目的是代码重用,接口的目的是功能拓展(被实现)
一个类只能继承一个父类,但可以实现多个接口
7、 异常
常见异常
1、输入不匹配异常:InputmilsmatchException
2、类型转换异常:ClassCastException
3、数组越界异常:ArraysiIndexOutOfBoundsException
4、空指针异常:NullPointerExcpption
5、非法参数异常Illega;ArgumentsException
6、下标越界异常:IndexOutOfBoundsException
7、文件未找到异常:FileNotFoundException
8、类型转换异常:ClassCastException
9、算数异常:ArithmeticExceptoon
处理异常
Try{}catch(异常类型 e){}finally{}
异常的体系结构
Throwable ---> Error
-->Exception -->Unhandled Exception
-->RuntimeException(运行时异常)
throw和throws
throw是用来生成异常对象,一般和throws搭配使用
throws是用来声明异常类型
自定义异常类型
先继承已知的异常类型,一般是Exception或RuntimeException
然后用super引用父类的有参构造(String message)



