static属性不能定义在方法里,static修饰时为静态方法或静态变量,或者说类方法和类属性,静态方法可以在非静态方法中调用,但是静态方法不能直接调用非静态方法
static修饰的变量和方法在对象还没创建的时候就存在,static不能再普通方法中,静态方法中也不能定义
- 代码块:
-
/**
* 在{}中的代码
* 普通代码块:定义在方法中的
* 构造代码块:定义在类中的使用{}括起来的代码块
* 每次在new对象的时候都会将构造代码块添加到构造方法里面并且处于前面的位置
* 比原先构造方法中的代码先执行,构造代码块中的代码会添加到每一个构造方法中去,如果
* 那个构造方法中有this()构造方法则不添加;
* 静态代码块:静态代码块:static{}中的代码块在持续载入的时候优先执行,在对象创建之前
* 同步代码块:在多线程中使用,用来给共享空间加锁
*/ -
包对应到文件系统就是多级目录,静态导包,import static java.lang.Math.*;
java访问权限修饰:
权限修饰符概念:
- private:Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
- default:即不加任何访问修饰符,通常称为“默认访问权限“或者“包访问权限”。该模式下,只允许在同一个包中进行访问。
- protected:介于public 和 private 之间的一种访问修饰符,一般称之为“保护访问权限”。被其修饰的属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
- public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包访问
-
封装:权限 类内 同包 不同包子类 不同包非子类 private √ × × × default √ √ × × protected √ √ √ × public √ √ √ √ -
封装为了让数据安全和规范
-
encapsulation,inheritance,polymorphism
- public,protected,default,private
属性,方法可被四种访问修饰符修饰
类只有public和default两种
方法参数是否改变:方法参数列表中的参数是形式参数,在调用方法的时候传入的参数是实参,方法调用过程中是值传递,局部变量的生命周期和作用域只在方法调用开始是开始,调用结束被销毁。
对于方法中的参数传递问题,只要看变量名和值的对应就行了,实际都是值传递,以及看变量的作用域来分析,引用传递传的是地址实际也是值传递