1.类
public class j { //他叫类,前面的public叫做权限 public int a; //类的内部可以定义变量,也可以定义方法或者main方法 public static void main(String[] args) { } }
由图可知,类中可以自己定义方法,也可以在里面放main方法(不推荐)
类为啥起名为k和变量名为o都是由一些些原因,正常的命名我们肯定都明白,但假如说这么换一下,学了好几天的我也愣了一下(不要学习这种命名方式,我是理解需要,正常不会这么命名的)
对象(类的实例化叫做对象)
大多人都说是类的实例化,也就是创造一个具有类的全部特征的对象,
构造方法(类里面)
1.构造方法必须要和类名相同
public k(){ }
2.构造方法没有类型,没有返回值,这个是要注意的点
3.当你实例化对象的时候会自动调用构造方法,括号里面要是没有参数,就调用没有参数的构造方法,有参数调用有参数的构造方法。
4.你如果不写构造方法,编译器会自动给你生成一个(我们看不到的,此时会让构造方法初始话里面的特征(变量)),如果你已经写了构造,系统就不会自动帮你写。
this的调用
this是指当前所实例化的对象,当你实例化对象了以后,this指的就是当前对象,最好平时多写this好习惯撒~
static(静态变量)
public class k { public int a=3; public static int b=7; //定义静态变量 public static int code(){ //定义一个静态方法 System.out.println(b); //静态方法中只可以用静态变量 return 0; } public static void main(String[] args) { k o=new k(); o.b=11; k p=new k(); p.b=10; System.out.println("o.b"+"="+o.b); System.out.println(o.b);
注意这里的静态方法是所有对象共享的(看下图),对象o和p所拥有的是一个静态变量b所以下面运行的o.b是p.b的值。
静态变量可以用类名,也可以用对象名访问,一般推荐类名访问。
静态变量生命周期是类的一生
构造块和静态块
public class k { public int a=3; { System.out.println("xixi"); //定义构造块 } static { System.out.println("haha"); //定义静态块 } public static int code(){ System.out.println(b); return 0; } public static void main(String[] args) { k o=new k(); k p=new k(); k.b=10; System.out.println("o.b"+"="+k.b); System.out.println(o.b); // o.a=3; // System.out.println(o.a); // o.code(); } }
构造块每一次实例化对象都会走一遍构造块(可以默认和构造方法绑定,但是快于构造方法),而静态块是只走一次,而且静态块走的速度是快于构造块的(看下图)
封装
一般情况,可以理解封装的意义如同机箱,如果不加保护盖子,有可能我们有时候碰一碰,改一改,会导致出现问题,那么这里的封装也是一样,我们需要封装来不让用户随意更改变量。
那么加个保护壳的方式,就是权限改为private ,当a的权限变为private的时候,无法用对象.a这种方式引用,一般情况下,我们使用的是方法来调用里面的变量
在这里我们使用setA和getA的两个方法,来调用和初始化变量A
包(包是相当于一个文件夹,里面包含的各种类)