前提:oop之封装:隐藏代码实现的细节,提高代码的可读性!
实现代码封装:
- 把对应的类属性用private修饰
private int id; private String name;
- 实现属性的两个访问器(setter 以及 getter)
public void setName(String name)
{
this.name=name;
}
public String getName()
{
return this.name;
}
public void setId(int id)
{
this.id=id;
}
public int getId()
{
return this.id; //this关键字指的就是这个类的对象本身
}
四大访问修饰符:
- private 只能用于本类访
- 默认 用于同包访问
- protected 用于同包和有继承关系的其他包
- public 无限制
约定名称书写规范
- 全部大写 常量名字
- 全部小写 工程名字 包名字
- Pascal命名法 每个单词首字母大写 类名
- 驼峰命名法: 第一个单词首字母小写,其他单词首字母全部大写 方法名字,以及类的属性
static final int PI = 3.14;
instanceof 关键字使用:(返回 true 或者 false)
对象 instanceof 类名
public class Test
{
public static void main(String[] args)
{
Test t1 = new Test();
System.out.println(t1 instanceof Test);
}
//打印结果为true
}
static关键字使用:(重点)
- 静态成员(包括属性和方法)不能访问非静态成员(包括属性和方法) 因为静态成员优先于非静态成员分配内存
- 静态成员可以直接访问,不需要实例化对象
- 静态成员在内存中公共唯一
public class Test
{
static int a;
public static void main(String[] args)
{
Test t1 = new Test();
t1.a=500;
System.out.println("a:"+t1.a); //500
Test t2 = new Test();
t2.a=1000;
System.out.println("a:"+t2.a); //1000
}
//可见static 所修饰的成员是公共的 都可以访问和修改
}
类成员执行优先级顺序:
- static 优先于 非static
- 同级别 属性>块>主方法>普通方法 构造方法的话得看他调用的先后
public class Test
{
static int a;
public static void main(String[] args)
{
Test t1 = new Test();
t1.a=500;
System.out.println("a:"+t1.a); //500
}
class b
{
}
}
class c
{
}
此时,使用上边的内部类,编译将会生成三个类,并且在b 前面加上public 不会报错,切记