Java学习笔记-类基础

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SZU_Crayon/article/details/82313286
  • Java学习笔记-类基础


  • 类成员:

Java学习笔记-变量与常量

静态成员:

作用:静态数据与静态方法提供共享数据和方法,遵循public,private,protected修饰符的约束

静态数据的共享性:非静态数据在一个类的不同对象中具有独立性,而静态数据在一个类的不同对象中共享,即一个对象对静态数据的作用会体现在其他类中

方法体内的局部变量不能声明为静态

静态方法的约束:

a.在静态方法中不能使用this关键字

b.静态方法中不能直接调用非静态数据在非静态方法中可以调用静态成员

静态区域:

用于类的初始化,只会执行一次

//静态区域
public class Example{
    static{
        //some
    }
}
  • 权限修饰符:

private:

本类可见,同包其他类或子类,其他包的类或子类不可见

protected:

本类及同包其他类和子类可见,其他包的类和子类不可见

public:

全部可见

通过将成员变量声明为private,继承于该类的子类不可访问该成员变量

默认访问权限:

声明类时若没有使用权限修饰符设置权限,则默认为protected

类权限的约束性:

类的权限设定会约束类成员的权限,比如类权限设定为protected,那么类成员中设定为public将失去包外可见性

  • this关键字:

梗概:

作为本类的一个对象

作用:

a.调用成员变量和方法,在本类成员与其他变量或方法重名时指明所属

b.调用构造方法

c.作为方法的返回值

  • 类的构造方法:

梗概:

构造类方法是一个与类同名的方法,用于对象的创建,每当类实例化一个对象时,类都会自动调用构造方法

语法:

//声明构造方法
public ClassName{
    //内容
}

特征:

a.构造方法没有返回值

b.构造方法的名称与本类名相同

c.在类中没有定义构造方法时,编译器自动创建一个不带参数的默认构造方法。当类中已经定义了有参构造方法,编译器不会再提供无参构造方法,需自行定义

d.this只可以在无参构造方法中的第一句调用有参构造方法

public class Example{
    String Data;
    public Example(){
        this("19980926");   //无参构造通过this调用有参构造
    }
    
    public Example(String str){
        Data=str;
    }
}
  • 类的主方法:

梗概:

主方法是类的入口,它定义了程序从何处开始;

主方法提供对程序流向的控制,Java编译器是通过主方法来执行程序的

声明语法:

public static void main(String[] args){

         //方法体         

}

特性:

a.主方法是静态的,所以在主方法中调用的其他方法也必须是静态

b.主方法没有返回值

c.主方法的形参为数组,其中args[0]~args[n]分别代表程序的1~n个参数,可以使用args.length获取参数个数(初学者表示没用过)

  • 对象的创建:

梗概:

对象是在一类事物中抽象出的某一个特例,每个对象都是互相独立的,在内存中占据独立的内存地址(当然静态成员是共享的),每个对象具有自己的声明周期,在一个对象生命周期结束时,对象变成垃圾并由Java虚拟机自带的垃圾回收机制回收

创建对象:

Example name=new Example name();    //无参构造

Example name=new Example name(参数1,参数2,..参数n);   //有参构造

name对象被创建出来时,就是对象的一个引用,这个引用在内存中为对象分配了储存空间,在创建对象时自动调用构造方法,所以对象的初始化和构造是被捆绑的

  • 对象的比较:

” == “运算符:

用于两个对象引用的地址是否相等

equals()方法:

用于比较两个对象所指内容是否相等

  • 对象的销毁:

梗概:

在对象生命周期结束时,分配给该对象的内存地址将会被收回

Java虚拟机眼中的垃圾:

a.对象引用超过其作用范围,视为垃圾

b.将对象赋值为 null

finalize()方法:

垃圾回收器只能回收那些由new操作符创建的垃圾,如果某些对象不是通过new操作符在内存中获取内存区域,这些对象可能不被垃圾回收机制所识别,所以Java中提供finalize(),Object类的方法

该方法被声明为protect,用户需在自己类中定义这个方法,如果类中存在该方法,在垃圾回收时会首先调用该方法,在下一次垃圾回收动作发生时,真正回收被对象占用的内存,实际上finalize()是作为标记垃圾的一个方法,提示垃回收机制对该垃圾进行回收

注明:

垃圾回收或 finalize()方法在Java虚拟机(JVM)内存损耗殆尽时不会执行

System.gc():

强制启动垃圾回收器

猜你喜欢

转载自blog.csdn.net/SZU_Crayon/article/details/82313286