1.封装

1.1封装的步骤

1.使用 private 关键字来修饰成员变量。

–pravate String name;

2.使用public修饰getter和setter方法。

–修饰getter和settter方法

2.static关键字

2.1静态变量

我们已经知道面向对象中,存在类和对象的概念,我们在类中定义了一些成员变量,例如name,age,sex ,结果发现这些成员变量,每个对象都存在(因为每个对象都可以访问)。

通俗说法:比如一个班级,学生的姓名年龄都是不一样的。所以都是各自定义的,但是如果是老师呢,每个学生都要赋值一个老师。是不是太麻烦了呢,是的

所以我们要定义一个公共的老师,让大家都是这个老师,张三是的,李四也是。所以就不需要都定义一遍,只要在类中声明就可以了。

image-20220728162258240

1
2
3
4
5
public static void  main(String[] args){
System.out.println(Student.schoolName);
Student.schoolName = "王老师";
System.out.println(Student.schoolName);
}

2.2实例变量及其访问

无static修饰的成员变量属于每个对象的, 这个成员变量叫实例变量,之前我们写成员变量就是实例成员变量。

需要注意的是:实例成员变量属于每个对象,必须创建类的对象才可以访问。

2.3工具类

  • 被static修饰的成员变量,叫做静态变量
  • 被static修饰的成员方法,叫做静态方法

image-20220728162913918

目前通常有三种类:

javabean类:用来描述一类事物的类。比如,Student,Teacher,Dog等。

测试类:用来检查其他类是否书写正确,带有main方法的类,是程序的入口。

工具类:不是用来描述一类事物的,而是帮我们做一些事情的类。

image-20220728163244647

工具类注意:

—1.类名见名知意:比如加个Util代表工具类,如ArrUtil,

—2.私有化构造方法: 构造方法一旦私有,外界就不能创建这个类的 对象。(因为工具类是没有意义的,所以创建多个也没有用,用不到!)

—3.方法定义为静态;方便调用

2.4静态方法

与静态成员变量一样,静态方法也是直接通过类名.方法名称即可访问。

image-20220728170454175

静态成员变量的访问:

格式:类名.静态方法

1
2
3
public static void  main(String[] args){
Student.study();
}

2.5小结

1.当 static 修饰成员变量或者成员方法时,该变量称为静态变量,该方法称为静态方法。该类的每个对象都共享同一个类的静态变量和静态方法。任何对象都可以更改该静态变量的值或者访问静态方法。但是不推荐这种方式去访问。因为静态变量或者静态方法直接通过类名访问即可,完全没有必要用对象去访问。(Student.study();)

2.无static修饰的成员变量或者成员方法,称为实例变量,实例方法,实例变量和实例方法必须创建类的对象,然后通过对象来访问。

3.static修饰的成员属于类,会存储在静态区,是随着类的加载而加载的,且只加载一次,所以只有一份,节省内存。存储于一块固定的内存区域(静态区),所以,可以直接被类名调用。它优先于对象存在,所以,可以被所有对象共享。

4.无static修饰的成员,是属于对象,对象有多少个,他们就会出现多少份。所以必须由对象调用。

image-20220728204715657

3.重新认识main方法

image-20220728205424784