类和对象(2)

  1. 访问限定符
     对于类的调用者来说, protected 修饰的字段和方法是不能访问的
     对于类的 子类 和 同一个包的其他类 来说, protected 修饰的字段和方法是可以访问的
    小结: Java 中对于字段和方法共有四种访问权限
     private: 类内部能访问, 类外部不能访问
     默认(也叫包访问权限): 类内部能访问, 同一个包中的类可以访问, 其他类不能访问.
     protected: 类内部能访问, 子类和同一个包中的类可以访问, 其他类不能访问.
     public : 类内部和类的调用者都能访问
  2. static
  3. 修饰属性
  4. 修饰方法
  5. 代码块
    字段的代码块方式有:就地初始化、使用构造方法初始化、使用代码块初始化
  6. 修饰类
  7. 代码块
    3.1 定义与分类
    使用{}定义的一段代码
    根据代码块定义的位置以及关键字,可分为四种:
    普通代码块、构造块、静态块、同步代码块
    3.2 普通代码块
    定义在方法中的代码块
    public class Main{
    public static void main(String[] args) {
    { //直接使用{}定义,普通方法块
    int x = 10 ;
    System.out.println("x1 = " +x);
    }
    int x = 100 ;
    System.out.println("x2 = " +x);
    }
    }
    3.3 构造代码块
    构造块:定义在类中的代码块(不加修饰符)。也叫实例代码块。构造代码块一般用于初始化实例成员变量
    注:实例代码块优先于构造函数执行
    3.4 静态代码块
    使用static定义的代码块。一般用于初始化静态成员属性
    注:
     静态代码块不管生成多少个对象,其只会执行一次,且是最先执行的
     静态代码块执行完毕后,实例代码块(构造块)执行,再然后是构造函数执行
  8. 内部类
    在Java中,可以将一个类定义在另一个类里面或者方法里面,这样的类称为内部类。内部类可分为静态内部类、匿名内部类、成员内部类和局部内部类。
    4.1 静态内部类
public class Test{
static class B {
}
}

4.2 匿名内部类
定义:是在一个方法或是代码块中定义的类,并且没有显示申明类的名称

public class Test{
public static void main (string[  ] args)  {
//定义了一个匿名内部类
A a = new A(){
};
}
}
class A{
}
  1. 类和对象的内部布局
    5.1 局部变量和方法栈桢
    Public class Main{
Public static void swap(int a, int b)  {
int tem = a;
a = b;
 b = tmp;
System.out.printf("swap a=%d, b=%d%n", a, b);
 }
  public static void main(String[] args) {
    int a = 1;
    int b = 2;
    swap(a, b);
System.out.printf("main a=%d, b=%d%n", a, b
}
}

输出结果为
Swap a=2,b=1 main a=1,b=2
5.2 类和类变量
对于类和类变量来说,一定要加载到类以后才会加载到方法区,并会进行初始化赋值。没有显示的赋值操作,对于基本类型的赋值就是基本的默认值。
5.3 对象和成员变量
对象要在成员变量初始化赋值完成,构造方法调用执行初始化操作以后,才算创建完成。对象存储在堆里面,成员变量存储在堆里面的对象中。如果是成员变量是引用类型,会指向引用的对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值