在类中加一个set方法进行设置传递的值。加一个get方法获取值。
建议所有属性都进行封装。
this指的是当前对象。
既可以调用方法,也可以调用方法。
**注意:**在一个构造方法中调用另一个构造方法时,必须写在构造方法的第一行。
1、可以直接用快捷键创建set、get方法。
2、使用static修饰的属性存储在方法区中。
重点:
1、静态成员 在类加载时加载并初始化。
2、无论一个类存在多少个对象 , 静态的属性, 永远在内存中只有一份( 可以理解为所有对象公用 )
3、在访问时: 静态不能访问非静态 , 非静态可以访问静态 !
package名:com.公司名.项目名.模块名…
public、private、protected、default
### 六、代码块
1、构造代码块:随着对象的每次创建执行一次,且执行在构造方法之前。
与构造方法的区别:无论用户调用哪一个构造方法,构造代码块都必然执行。
2、静态代码块:在构造代码块前面加上static。
随着类的加载(第一次使用),静态代码块执行。即只执行一次
3、普通代码块
4、同步代码块
面试题:构造方法 与 构造代码块 以及 静态代码块的执行顺序:
静态代码块 --> 构造代码块 --> 构造方法
一、继承
1、继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
2、继承就是子类继承父类的特征和行为,使得子类对象具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
3、格式:
class 父类{
}
class 子类 extends 父类{ }
4、子类继承父类之后依然可以有自己特有的属性和方法。
5、限制:java只有单继承、多重继承。没有多继承
6、
创建子类对象时,会先在堆空间里创建父类对象空间,然后在创建子类空间。最后子类空间会有一个super方法指向父类,所以我们调用子类对象时也可以调用父类对象的属性和方法
7、子类只能调用父类中使用public和protected修饰的属性和方法,private和default修饰的属性和方法无法调用。
8、super关键字。
(1)、通过super可以访问父类构造方法。注意:调用super构造方法的代码,必须写在子类构造方法的第一行。在一个方法中不能既调用this又调用super。
(2)、通过super可以访问父类的属性
(3)、通过super可以访问父类的方法。
二、重写
规则:
1、参数列表必须完全与被重写的方法相同。
2、返回类型必须完全与被重写的方法相同。
3、访问权限不能比父类中被重写的方法的访问权限更低。
4、父类的成员方法只能被继承的子类重写
5、生命的static和private的方法不能被重写,但是能被再次声明
重写(Override)和重载(Overload)的区别:
1、位置不同:重载是在同一个类中,重写在子父类中。
2、参数列表:重载的参数列表必须不同,重写的参数列表必须相同
3、返回值:重载与返回值无关,重写的返回值类型必须是相同的。
4、访问权限:重载与权限无关,子类重写的权限不能小于父类的权限。
5、异常处理:重载与异常无关,重写的一场范围可以更小,但是不能抛出新的异常。
三、final关键字
修饰类型:
1、属性、变量:
(1)、变量成为了常量,无法在对其进行赋值。
(2)、final修饰的局部变量只能赋值一次(即声明时未赋值,然后单独赋值);
(3)、final修饰的成员属性,必须在声明时赋值。
(4)、全局常量:public static final。
(5)、常量的命名规范:由一个或多个单词组成,单词与单词之间必须使用下划线隔开,并且所有字母必须大写,例如:SQL_INSERT.
2、修饰类。
(1)、final修饰的类,不可以被继承。
3、修饰方法。
(1)、final修饰的方法,不能被子类重写
四、抽象类
1、概念
抽象类必须使用abstract class声明
一个抽象类中可以没有抽象方法。抽象方法必须写在抽象类或者接口中。
格式:
abstract class 类名{ // 抽象类
}
2、抽象方法
只声明而未实现的方法称为抽象方法(未实现指的是:没有“{}”方法体),抽象方法必须使用abstract关键字声明。
格式:
abstract class 类名{ // 抽象类
public abstract void 方法名() ; // 抽象方法,只声明而未实现
}
五、接口
接口中不允许出现实现方法,只能出现抽象方法,因此抽象方法的public和abstract可以直接省略。
全局常量可以省略public static final关键字。
六、多态
### 七、Object类
1、Object类是所有类的父类。
2、可以接收任意的引用数据类型。
### 八、toString和equals
1、所有类建议重写toString方法。
2、重写equals方法必须满足五个特性:
自反性 :对于任何非空的参考值x , x.equals(x)应该返回true 。
对称性 :对于任何非空引用值x和y , x.equals(y)应该返回true当且仅当y.equals(x)回报 true 。
传递性 :对于任何非空引用值x , y和z ,如果x.equals(y)回报true个y.equals(z)回报true ,然后x.equals(z)应该返回true 。
一致性 :对于任何非空引用值x和y ,多次调用x.equals(y)始终返回true或始终返回false ,前提是未修改对象上的equals比较中使用的信息。
非空性 :对于任何非空的参考值x , x.equals(null)应该返回false 。
equasls重写:也可以直接用快捷键。
### 九、内部类
成员内部类、局部内部类、匿名内部类、静态内部类。
十、包装类
字符串转换:使用包装类的好处是可以更好更快的转换字符串。
使用包装类还有一个很优秀的地方在于:可以将一个字符串变为指定的基本数据类型,此点一般在接收输入 数据上使用较多。 在Integer类中提供了以下的操作方法: public static int parseInt(String s) :将String变为int型数据 在Float类中提供了以下的操作方法: public static float parseFloat(String s) :将String变为Float 在Boolean 类中提供了以下操作方法: public static boolean parseBoolean(String s) :将String变为boolean