#类的提炼#
从现实生活中归纳总结出,多种相同物种,具有相同的特性(属性和方法)提炼到一个容器中,给这个容器起名字,这个名字就是类了。
1,先要有对象
2,然后提取出相同的属性
例如:名字,性别等
3,再提取出相同的方法
例如:跑步,吃饭
#构造方法#
构造方法主要是完成对象的创建
访问修饰符 构造方法名 () {
初始代码
}
系统提供默认无参构造方法
public 类名() {}
例如定义一个dog类
并没有定义构造方法但是却可以调用
new Dog()就是系统默认给Dog类的构造方法
可以自己定义一个public Dog() {}来覆盖系统默认的构造方法
也可以自定义带参的构造方法,并且允许你创建多个构造方法或者方法。方法名相同,参数类型,个数,顺序不同的就叫做方法重载
再调用构造方法的时候还可以选择调用哪个参数数量的构造方法
#static修饰符#
一般我们是要先创建一个对象然后再可以访问类里面的属性和方法
如果使用了static修饰符之后就可以直接通过类名来访问属性和方法
#static代码块#
JVM加载类的时候会加载静态代码块,也就是不需要构建对象并且使用里面的方法访问打印属性,直接就会加载静态代码块,并且多个静态代码块会按顺序加载,但是只会执行一次。
没用对num的赋值调用的情况
运行代码就会打印出来
#静态变量和实例变量#
类的成员变量
--类变量(静态变量)
被static修饰的变量,在内存中只有一个拷贝,可在类的内部任何方法内直接被访问,其他类中可以直接通过类名.访问
--实例变量
没有被static修饰的变量,每创建一个实例,就会为实例变量分配一次内存,实例变量可以在内存中有多个拷贝,互不影响,只有创建了实例之后才可以通过实例访问到实例变量
#封装#
将类的某些信息隐藏在类内部。不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问
优点:隐藏类的实现细节,只能通过规定方法访问数据
过程:
1,将属性的可见性设为private
2,创建公有的getter和setter方法
3,在getter和setter方法中加入判断语句
体现:一个类中可以出现成员变量和成员方法,将私有的成员变量封装成公有的getter和setter方法
#不同包之间的导入#
一个类同时引用了两个来自不同包的同名类的时候,另一个必须通过完整类名来区分
package和import 的顺序是固定的
--package必须在第一行
--只允许有一个package
--其次是import
--接着是类的声明
#修饰符#
public:任何地方
protected:当前类,包,子类,不同包或者跨包不可以访问
默认访问修饰符:当前类,包
private:只能当前类