《On Java基础卷》阅读笔记(三)

第6章 初始化和清理

  1. 构造器初始化

Java中使用构造器也称为构造方法来进行初始化,它的特点是方法名就是类名,参数分有参数和无参数两种,无返回值。该方法只能在new 关键字后跟随使用。

public class A{
    private int age;
    private String str;
    public A(){
       // 无参构造方法     
    }
    
    public A(int a,String b){
        // 有参构造方法
        this.age=a;
        this.str=b
    }
    
    public String getString(int a){
      this.age=a;
      return "" + a;
    }
    
    public String getString(String str){
      this.str=str;
      return str;
      }
    
}
​
public class Test{
    
    public static void main(String[] args){
        A a1 = new A();
        A a2 = new A( 6, "hello");    
    }
}

一个类里没有构造方法时,Java会默认有个无参构造方法;

没有无参,只有有参时,默认的无参构造方法不生效。

使用构造器方式初始化,会引入下面的内容:

重载:

同一个类里,方法名相同、方法参数不同(类型、顺序不同)的方法被称为方法的重载体现。

也分为构造器方法重载,如上面代码中的两个构造器初始化方式;

非构造器方法重载,如上面代码中的两个getString方法。
 

程序在编译的时候,才知道访问的是具体的哪个重载方法,因为它是通过方法参数来定位到的。

不通过方法返回类型定义,是因为有时有返回值的方法在业务中不使用返回值,导致在编译阶段无法区分具体使用了哪个重载方法。

2.this关键字

只能在非静态方法中使用,如普通方法和构造方法。

this点后只能跟属性和方法,并且是当前这个类里的非静态属性和非静态方法。

3.清理:终结和垃圾收集

finalize()方法是Java对象被进行垃圾回收的关键方法。

垃圾收集器的工作原理:

  1. 找到垃圾对象,有引用计数法,简单但是很慢;可达性分析法,复杂但是快。

  2. 采用复制算法,把存活对象移动到另一块内存块里,把对象所在的原先的内存块清空。

  3. 大对象的特殊处理;

4.成员初始化

指定初始化:给成员变量赋值,基本类型,引用类型都赋值;

5.构造器初始化:在构造方法内部,对成员变量进行赋值,作为对象里的成员变量初始化过程。

初始化顺序:类构造器外部的成员变量初始化要早于该类的构造器方法初始化。外部成员变量的初始化按照编码顺序进行。

类内部的镜头成员变量初始化只发生在第一次进行类对象被访问时。

静态代码块也是一样,只初始化一次。

非静态代码块在每次创建该类对象时都会被初始化。

6.数组初始化

数组本质也是一个引用类型对象。

数组是有固定长度(个数)的相同类型的元素按照顺序排列好的集合;

可变参数列表:参数是数组形式传递到方法

7.枚举类型

枚举类型也是 一个类,并且有自己的方法.

第7章 实现隐藏

实现隐藏主要讲述的是Java对于代码的访问权限,会通过一些关键字信息表示出来,这些被关键字修饰的代码,在被访问是有限制的。

1.package:库单元

Java程序文件都是以【.java】格式的文件。package可看作是文件夹,同一个文件夹里不允许有相同名字的文件。所以package的作用就是对同名的文件进行唯一路径地址的区分,同时对同一个package下的所有Java文件里的某些方法都是可直接访问的。

要求:包名要唯一

2.Java访问权限修饰符

包访问:包中的类可以访问该包里具有包访问权限的成员

public 接口访问权限:被public修饰的方法,对于所有人都是可用的,构造方法默认是public无参方法。

private,被修饰的方法只能在类本身文件里被使用,不能被非本类文件使用

protected,继承访问权限,子类可以访问父类里的protected修饰的方法,非子类则不能直接使用。

3.接口和实现

访问控制常常被称为实现隐藏。

将数据和方法包装在类中,并与实现隐藏相结合,称为封装。其结果就是具有特征和行为的数据类型。

4.类的访问权限

通过使用import 类全路径方式,将目标类引入到操作类中,这样操作类就可以使用目标类。

或者直接在操作类中,使用目标类全路径方式进行使用,不过这样导致代码不简洁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值