This 就表示对象自己
区分局部变量和成员变量同名的情况下
类名区分同名的局部变量和静态变量
This(参数)必须在构造方法的第一行(强制规定)
This不能出现在静态方法的上下文中
Static 1 修饰符(区分静态和动态属性)static int a =10;
2 静态方法和变量
3 还可以定义静态语句块
语法:Static{}
静态变量:static int i=20;
静态方法:public static void m1(){
System.out.println(“静态方法”);
}
一个大括号,就是一个语句块,而方法就是一个有名字的语句块,可以进行重复使用
静态语句块:就等同于静态方法,只不过该方法没有名字,没有权限控制,没有参数列表,没有返回值,同理也就不能重复使用。
静态语句块最先在加载的阶段进行,并只执行一次 做初始化操作
访问类的静态属性的时候,类加载
Java是动态加载方式
调用其他类的静态属性,会加载对应的类到静态区
实例语句块:等同看作成员方法
语法:{}
创建一次,就执行一次
{
System.out.println(“实例1”);
}
{
System.out.println(“实例2”);
}
成员变量 数据不共享
静态变量 对象无关,数据共享,因为编译之后,会把对象转换为类名区调用
Null访问成员属性会出现空指针异常
但如果null访问静态属性,可以正常访问,因为静态属性和对象无关,编译之后后,会把对象转换为类来进行调用。
封装:使用控制修饰符把所有数据封装起来控制用户对类的修改和访问
作用:适当的封装使代码更加容易理解和维护 加强代码的安全性
软件包机制:
1 package:是设置编译之后的class文件的保存位置和原位置无关
如果源文件中,没有出现package语句,则class文件和源文件在同目录
软件包机制:
1为了解决命名冲突问题,
2 package语句只能出现在Java源文件的第一行,可以没有
3 一般采用公司域名倒叙的方式
Com.tledu.oa.system
公司域名倒叙.项目名.模块名
带有package语句的java文件的编译和运行
编译 :javac-d生成路径-encoding 字符编码 java文件
-d ./-encoding uif-8 xxx.java
-d:disk磁盘 ./表示当前目录
运行:java 包名.类名
Java com.tledu.zrz.A
完整的类名 是带有包名的
能够找到这个文件的全路径,才是这个文件的文件名
被调用的类和当前类在同一个目录下,可以直接使用
否则就地写类全名
Import 1.引入当前类中需要的其他类,否则就需要这些类全名,可与直接写类名使用即可
- 必须出现在package语句之下,class语句之上
Import 包名.类名;只引入对应的某一个类
Import 包名.*;引入该包下所有类
Java.lang.*下面的类 是核心类,使用不需要导包
导包的时候注意 按下空格和回车也会自动导入
权限控制:
权限控制修饰符:
1 public 公共的 谁都能用
2 private 私有的只有当前类可以访问
3protected 受保护的,继承权限 通过子类调用
同包 就算是没有继承关系,也可以访问
默认:当不使用以上三种修饰符进行修饰的时候,则是默认权限,只能在
当前包中的类访问。