类的的高级概念

这里写图片描述

访问修饰符

访问修饰符:用来修饰定义在类中的属性和行为可以被其他人访问修饰的符号
本类 同包 不同包
子类 非子类 子类 非子类
private Y N N N N
default Y Y Y N N
protected Y Y Y Y N
public Y Y Y Y Y

private私有(只有本类可以访问)
default 本包(本包中的类)
protected 受保护的(同包中的类和其他包中的子类,都可以访问)
public 公共的(任何包中的类均可访问)

封装

封装功能是组装和隐藏。
组装的组成:
1.属性(变量属性、常量属性)
2.行为
隐藏{
访问修饰符、
方法的体现
}

封装的优点

类的成员变量可以成为只读或者只写
类可以对存储在其成员变量中的内容有一个整体的控制。
类的用户不需要知道类是如何存储数据的。类可以改变一个成员变量的数据类型,而类的用户不需要改变其代码。

静态类成员(static)

static 修饰的全局变量叫静态变量,也叫类变量,类变量的值为所有对象所共享。与对象无关。直接上升为类的变量。存放在方法区中的数据块的静态区域中。非静态成员变量,必须等待实例化对象之后,才可调用,而静态成员变量,在类加载完成之后,就可以直接调用。

public static double PI=3.14

static 修饰的方法叫静态方法,即类方法。类方法只能使用静态变量,而不能使用非静态的全局变量。封装工具类的封装方法。同样与对象无关,直接上升为类的行为。非静态方法必须等到实例化对象才可使用,而静态方法,在类加载之后,就可以直接调用。静态方法中,不能访问非静态成员(属性,也指方法)其原因是:
1、静态方法在加载时,非静态属性,方法还未调用。
2、假设可以调用,如果存在成千上万个对象,调用的属性和行为产生所属问题,无法判断属于谁。

public static int add(int a,int b){
return a+b;
}

该方法是静态方法,在任何类中均可调用。
static修饰的内容存于内存的时机是:类加载的时候
static在修饰全局变量时,一般用于修饰常量,主要目的:节约堆内存,将变量定义在静态区域中,而不是在每个对象的自身。
static在修饰方法时,一般用于修饰工具类的工具方法,比如:Math类、Arrays类。
static无法修饰构造函数,static修饰的属性和行为与对象无关,而构造是专门产生对象的。

静态初始化块:

主要用于在类加载时,做一些前期的工作,比如:检查数据库连接是否正确,配置文件是否存在。在类加载时,就开始执行。

static{
   System.out.print("数据库连接正确");  
}

实例初始化块:主要用于初始化成员变量,一般是对象实例化,才会执行,并且是实例一次,执行一次。他执行在构造函数执行代码的第3步到第4步之间。可以使用有参构造,替代实例初始化块。

{
System.out.print("在类中执行");
}

猜你喜欢

转载自blog.csdn.net/qq_38527427/article/details/82430771
今日推荐