https://www.cnblogs.com/JinQing/p/6237013.html
”造车
一.画图纸
1.先定义车的属性 color等
2.定义车的动作
二.查看图纸找工厂
类就是图纸
属性:这一类事物拥有的共同属性
动作:这一类事务共同执行的功能
对象是使用类创建的具体东西
对象能干什么完全取决类是怎么定义的让他干什么
创建对象:
类名 引用=new 构造器();
this 关键字
this 表示当前正在执行方法的对象
this 当前类的对象
this 可以在方法内获取对象的属性信息
this 可以区分局部变量和成员变量
构造方法
在创建对象的时候 自动调用的方法
语法:
public 类名(传参){
}
注意:
1.没有返回值这一项
2.在我们new的时候自动构造方法
作用:在创建对象的时候,给对象设置属性信息;
java会自动送给每一个类一个无参的构造方法,但是如果你写了构造方法,系统就不在赠送了。
getter 和setter
成员变量一般使用private来声明,保护成员变量不被胡乱的赋值
sertter 主要是给成员变量赋值,并起到一定的保护作用
getter 从成员变量中获取数值
继承:
子类可以自动拥有父类中除了私有内容外其他的所有内容
当出现x是一种y的时候,x就可以继承y
黑熊怪是一种妖怪
public class 子类 extends 父类{
}
作用:简化代码的开发
子类对父类进行了扩展
super
表示父类中的内容
this表示子类的内容
用super和this区分父类和子类中重名的内容
创建对象的过程:
先创建父类的对象,在创建子类的对象
方法的重写
重写:子类对父类提供的方法进行重写定义
语法:子类和父类中的方法声明完全一致
重写又被称为方法的覆盖,如果覆盖了调用的是子类的方法
多态
同一个对象拥有多种形态
作用:把不同的数据类型进行统一,让程序具有超强的可扩展性
小知识点
把子类的对象赋值给父类的引用(变量) 向上转型
缺点:屏蔽掉子类中的特有的方法
把父类的对象转化回子类的引用(变量) 向下转型
向下转型有可能有风险,java要求必须要写强制类型转换(转换之后的数据类型)变量
把不同的数据类型进行统一(cat,dog都是属于animal),可以把猫当成动物的
final
1.被final修饰的变量不可以被改变,又被称之为常量
2.被final修饰的方法不能被重写
3.被final修饰的类不可以被继承
抽象
抽象:只声明 不实现
抽象方法 用 abstract来修饰,不可以有方法体,直接用分号结束 这个方法就是一个抽象方法
抽象类:如果一个类中有抽象方法,这给类必须是一个抽象类
1.抽象类不可以创建(new)对象
2.抽象类的子类必须重写父类中的抽象方法 否则 子类必须也是抽象类
通过抽象类可以强制的要求子类中必须有那些方法
抽象类可以有支持的方法
接口:
接口是 一种特殊的抽象类,接口中所有的 方法都是抽象方法
接口使用interface来声明,已经不是一个类了
接口中所有的方法都是抽象方法 可以省略掉abstract
接口中所有的变量都是全局静态常量
接口中所有的内容都是公开的 公共的
接口中所有的方法都是抽象方法,不可以有普通方法
能继承接口的只能是接口 接口和类只能是实现关系 imlpements
接口和类只能是实现关系,接口一样具有实现性
类只能单继承,接口可以多实现,接口具有多态性,
接口可以把很多不相关的内容进行整合
接口中所有的变量都是全局静态常量
成员变量初始值
java中所有的变量都是先声明,后赋值才能使用
java中的成员变量,在创建对象的时候都会先执行一次初始化操作,都会给一个默认值
基本数据类型的默认值都是0, boolean的是false
引用数据类型:null
null表示空,什么都没有
object
万事万物皆为对象
所有的对象都是对象
在java中所有的类都继承object
object是一个类,所有类的根
我们编写的类即便不写继承关系,那么默认也会继承object
equals和==
==判断作用两边的数据类型是否一致
euqals:object类提供的一个方法,用来判断两个对象是否相等
字符串判断一定要用equals
toString方法
toString对一个对象的字符串的表示形式
Java官方推荐重写这个方法,默认的太丑 包名+类名+@+内存地址
异常
运行时异常 语法正确,逻辑错误
编译时异常 语法错误
抛异常 把错误扔出来
捕获异常
异常类
Throwable:分为Error Exception
1.RuntimeException 运行时异常,一般不手动处理,出问题了在处理
2.其他Exception异常 必须手动处理
3.Error:一般指的是系统类的错误
异常 处理
cry{
尝试执行的代码 //如果代码无错,直接跳过catch运行finally, 如果代码有错全部运行
}catch{
处理执行的代码
}finally{
最后的
}
throws 与throw 的区别
throws 写在方法的后面
表示异常的声明,它在定义方法的时候去使用,表示这个方法有可能会产生异常,但是我不会在这个方法中去处理,谁调用谁处理。
throw 表示人为的抛出异常,这个异常对象需要我们自己new
方法里面写throw 方法定义必须写throws
自定义异常
自定义异常:自定义的类继承Exception,然后对子类进行扩展以满足自己的需求。public class extends Exception{}