Java-封装
将类的某些信息进行隐藏,不允许外部程序进行直接的访问;
只能通过特定的借口进行访问;
银行的ATM机:储户无法直接拿到ATM中money 但通过特定的银行卡的密码和基本的操作就可以轻松的取出money;
Java包:文佳管理 解决要创建同名类问题
定义包:package 包名;必须在源文件的第一行;
引入包:使用import 包名;
import com.animal.Cat; 表示调用animal包中的Cat类
import com.cat.mechanical*; *表示导入当前包下的所有Java文件 进行调用时,优先级低于直接调用类
关键字:static:静态的
static 成员:静态成员(类成员):所有对象共用同一块存储空间;随着类的销毁才消亡,生命周期长
调用 静态成员:类名.成员 Cat.price Cat是类名
对象名.成员(不推荐)
static 方法:静态方法(类方法)
调用 静态方法:类名.方法 Cat.add Cat是类名
对象名.方法(不推荐)
static 不能修饰类,无法修饰局部变量
静态方法:不能直接访问同一个非静态成员.静态方法中不能使用this关键字.无法调用普通成员方法,普通成员方法可以调用静态属性和方法;
如何在静态方法中调用非静态成员:实例化一个对象,通过对象进行调用
代码块:出现{}对,叫代码块
在方法中定义:普通代码块,顺序执行
在类中定义:构造代码块,实例化对象时执行,调用顺序优于构造方法.相同构造代码块顺序执行.
static 构造代码块;静态代码块 最先执行,且只执行一次.静态代码块之间按顺序执行
静态代码块中无法直接调用非静态成员,调用方法如下:
代码块执行顺序:
public class StaticDemo { { System.out.println("我是普通构造代码块2"); } { System.out.println("我是普通构造代码块1"); } static { System.out.println("我是静态构造代码块2"); } static { System.out.println("我是静态构造代码块1"); } //成员方法 public void pub() { } //静态方法 static void sta() { } public static void main(String[] args) { StaticDemo st = new StaticDemo(); } }
运行结果: