this关键字
1.this关键字代表当前对象
2.使用this关键字引用成员变量
3.使用this关键字引用成员方法
"this.成员变量"来引用成员变量名,用来区分同门的成员变量和局部变量
public class Demo {
private String name;
public Demo(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
static关键字
概念:static被称为静态,用来修饰类的属性,方法,代码块,内部类。
1.随着类的加载而加载
2.优先于对象存在,先加载类,而后才创建对象
3.修饰的成员,被所有的对象所共享
4.可不创建对象,直接被类调用
static属性: 静态属性是类的所有对象共享的,即不管创建了多少个对象,静态属性在内存 中只有一个
public class Chinese {
/*
没有被static修饰的成员变量,属于对象,使用对象访问
每个对象中的name,age,address的值都不一样
*/
String name;
int age;
String address;
//static String name;
}
//测试
public class TestChinese {
public static void main(String[] args) {
Chinese zs = new Chinese();
zs.name = "张三";
zs.age = 12;
zs.address = "汉中";
Chinese ls = new Chinese();
ls.name = "李四";
ls.age = 19;
ls.address = "西安";
System.out.println(zs.name);//张三//如果name被static修饰,输入结果为李四,张三被李四覆盖
System.out.println(ls.name);//李四
}
}
static是可以修饰成员方法的,修饰后的成员方法中只能访问静态的成员变量
非静态方法可以访问静态的成员变量
代码块
一段没有名称的代码块
实例代码块:在每次创建对象时自动执行
静态代码块:在类第一次被加载时执行
package day3;
public class Demo {
int a;
static int b;
/*
代码块:类似一个没有名称的方法
分为实例代码块(非静态)和静态代码块
实例代码块在每一次创建对象是自动执行
静态代码块在类第一次被加载时执行
*/
{
System.out.println("实例块代码1"+a);
}
{
System.out.println("实例代码块2"+b);
}
static{
System.out.println("静态代码块1");
}
static{
System.out.println("静态代码块2");
}
}
包
概念:为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间
包的作用:
避免类重名
按照不同功能管理类
控制访问权限
包(package)的命名规范: 在包名中,可以使用.号来区分包的级别;
包名一般情况下是小写
第一级 指该项目的类型,如com,org,gov等,
第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei 等
第三级 指项目的名称,如:bcms,oa,erp,cms等
第四级 指项目模块的名称,如:bean,action,exception等
导入外部包的类,关键字“import”
访问权限修饰符
public :公共权限 修饰类、属性、方法(在任何位置都可以访问)
protected:受保护权限 修饰属性、方法
default: 同包权限 修饰类、属性、方法,只能被同包的类访问
private:私有权限 修饰属性、方法,只能在本类中访问