1.方法:
样式:public void 方法名(传参){
}
2.构造方法:
java默认的话会送一个构造方法,但是假如你重新定义了构造方法,那么java就不再赠送。
样式: public 类名(传参){
}
3.构造方法也是方法,也可以进行重载。
作用:可以用更多的方式区创建对象
使用this 可以访问其他的构造方法
this(参数)
4.static 静态
要使用类名去访问静态的变量
特点:1.数据共享
2.属于类的,不属于对象。
3.是优于对象产生的
通用构造器:{
}
静态构造器:static {
}
构造方法:public 类名(){
}
创建对象的简单过程:
1.静态构造器
2.通用构造器
3.构造方法--》创建对象
创建对象的过程是在静态内容加载完成之后,所以在静态方法和静态块里不能使用this
静态方法里调用静态方法是可以的,
静态内容需要用类名去调用。
5.访问权限:
1.public 公开的,所有人都可以访问
2.default 包访问权限,在自己的包内可以随意访问
3.private 私有的
用的最多的都是private 和 public
6.getter 和 setter
setter:主要给成员变量赋值,并且做一定的保护
getter:从成员变量中获取数据
7.继承
继承:子类可以拥有除父类私有变量之外的所有内容
放出现x是一种Y 的时候,x就可以继承Y
例如:黑熊怪是一种妖怪
public class 类 extends 父类{
}
作用: 简化代码的开发
继承其实是子类对于父类的扩展。
8.super
super:表示符类中的内容
this:表示自己类中的内容
用super和this来区分父类和子类重名 的内容
创建对象的过程:先创建父类的对象,在创建子类的对象
在子类构造方法中,会默认去构造父类的构造方法。
总结:1.super可以获取到父类中的内容。
2.可以调用父类的构造方法,必须写在子类构造方法的第一行,如果父类的构造方法是无参数的那么,可以不写,但如果有参数,则必须传参数。
9.方法的重写
重写:子类对父类中提供的方法进行重新定义
语法:子类和父类中的方法声明完全一致
重写又被称为方法的覆盖
10.多态
多态:同一对象拥有多种形态
作用: 把不同的数据类型进行统一。
小知识点:
1.把子类的对象赋值给父类的变量 --》向上转型
缺点:屏蔽掉子类中特有的方法
2.把父类的变量转化回子类的变量--》向下转型
向下转型有风险,java要求必须要写强制类型转换
向下转型格式:(转换之后的数据类型)变量
11.final
1.被final修饰的变量不能被改变,又称为常量
2.被final修饰的方法不能被重写
3.被final修饰的类不可以被继承
final 总结就是不可变
12.抽象
抽象:现实中不存在的东西
在java中, 只声明,不实现
abstract修饰方法,这个方法就是一个抽象方法,抽象方法没有方法体,直接用分号结束。
但是此时会报错,因为如果一个类中有抽象方法,那么这个类也必须是一个抽象类。
抽象类特点:
1.抽象类不可以创建对象,只是一个概念
2.抽象类的子类,必须重写抽象类的方法,否则子类必须也是抽象类。
通过抽象类可以强制要求子类中必须有哪些方法
小知识点:抽象类中可以有正常的方法
12.接口
1.接口实际上是一种特殊的抽象类,接口使用interface来声明
2.接口中的所有方法都是抽象方法,不可以有正常的方法
3.接口中的所有内容都是公开的,公共的
4.能继承接口的只能是接口, 接口和类只能是实现关系 关键字:implements
在实现接口的类中要 实现接口中的抽象方法(实际上就越是重写)
类只能单继承,接口支持多实现
接口同样具有多态性。
接口可以把很多不相关的内容整合到一起。
特点:
1.接口中所有的方法都是抽象方法,都是公开的。,
2.接口中所有的变量都是全局静态变量
13.成员变量初始值
1.java中所有的变量必须先声明,后赋值才能使用。
2.java中的成员变量,在创建对象的时候,都会执行一次初始化操作,都会给一个默认值
byte:0
int :0
short:0
long:0
float:0.0
double:0.0
char:[] 0
boolean:false (0)
string:null
自己写的类:null
基本数据类型默认值都是0,包括Boolean
引用数据类型:null
null表示空,什么都没有,占位
14.Object
万物皆对象,所以的东西都是对象。
在java中所以的类都要继承Object
Object是一个类,是所有类的根
15.equals和==
==判断左右两端的数据是否一致(判断的是内存地址是否相等)
equals:object类提供的一个方法,用来判断两个对象是否相等
equals可以重写
字符串的判断一定要用equals来判断
16.toString方法
默认打印对象,就相当于自动的执行这个对象中的toString()方法
推荐重写
17.instanceof关键字
instanceof关键字:判断xxx对象是否是xxx类型。
18.内存分析:
1.堆:主要存放对象
2.栈:局部变量,以及基本数据类型的变量
3.代码区:类和对象
4.数据区:常量池和静态变量
19.参数传递的问题:
值传递:把变量的值作为参数进行传递
应用传递:直接把变量作为参数传递(内存地址)
java使用的是值传递