Java基础

本文介绍了Java编程中的this关键字及其用途,如引用成员变量和方法,以及在构造方法中的应用。同时,文章讲解了静态成员的概念,包括静态变量和静态方法,强调它们在内存中的唯一性以及访问规则。此外,还讨论了Java中的包机制,作为类的命名空间,用于解决类的组织和命名冲突问题。
摘要由CSDN通过智能技术生成

this关键字

表示当前对象

在编程时,为了区分成员变量和局部变量,在编码时,可以使用this关键字进行指示,使用this调用的是成员变量或者成员方法

this在实际运行时,表示当前正在调用此方法的对象

作用:

使用this关键字引用成员变量

使用this关键字引用成员方法

使用this关键字引用构造方法

代码示例:

package day06;

public class Student {
    String name;
    int number;
    String gender;
    static String country = "中国";

    public Student(String name,int number,String gender){
        this.name = name;
        this.number = number;
        this.gender = gender;
    }
    public void study(){
        System.out.println(this.name+"好好学习");
        this.test();
    }
    public void test(){
        System.out.println(this.name+"认真考试");
    }
    public Student(){
        this("zzz",333,"男");
    }
}

package day06;

public class StudentText {
    public static void main(String[] args) {
        Student student1 = new Student("何非",222,"男");
        Student student2 = new Student("李木子",111,"女");
        Student stu3 = new Student();
        student1.study();
        student2.test();
        stu3.study();
        System.out.println(Student.country);
        System.out.println(student1.country);
        System.out.println(student2.country);
        System.out.println(stu3.country);
    }
}

static关键字

被称为静态,可以用来修饰类的成员变量、成员方法、代码块、内部类

类——class——静态代码 只有一份存在

静态——在内存中只有一份存在

static修饰的变量就是静态变量(类变量,与类一样,只有一份)

当所有类的对象的某个属性值相同时,可以把他定义为静态的(例如,中国人类 国籍都是中国)

当类被加载时,静态的成员就会被加载,先于对象创建存在

修饰的成员,被所有对象共享

静态的先执行,可以被类、对象访问,非静态的只能通过对象访问

static关键字修饰的方法就是静态方法,属于类,可以通过类名直接进行访问

在静态方法中,只能访问静态的变量,不能使用非静态的成员,因为静态的成员随着类的加载而加载,类的加载先于对象

当方法中不需要使用非静态的成员变量时,我们可以将方法设计为静态方法,不需要创建对象,直接通过类名访问

非静态成员方法中,可以使用静态的成员变量

代码块

定义在类中,类似于一个没有名字的方法

因为代码块没有名字,只能在满足条件时,自动由系统调用

分为实例代码块、静态代码块

实例代码块:在创建对象时,被自动调用执行(构造方法是在创建对象后被执行,因此实例代码块在构造方法前执行)

静态代码块:在类被加载时,被自动调用执行

类什么时候被加载:(类只会被加载一次)

1.通过类名访问类中静态成员时,类会被加载

2.在一个类中使用main方法,也会加载类

3.创建对象也会加载类

如果有多个实例代码块或静态代码块

代码示例:

public class DaiMaKuai {
    {
        System.out.println("实例代码块1");
    }
    {
        System.out.println("实例代码块2");
    }
    static{
        System.out.println("静态代码块1");
    }
    static{
        System.out.println("静态代码块2");
    }

    public static void main(String[] args) {

    }
}
package day06;

public class DaiMaKuaiText {
    public static void main(String[] args) {
        new DaiMaKuai();
        DaiMaKuai st=new DaiMaKuai();
    }
}

(1)项目越复杂,所含的类越多,可能会出现同名类的问题

(2)不同类的功能不同,需要分类管理

综上,为了解决这些问题,Java引入了包机制

包称为类的命名空间,可以理解为一个文件夹,是类名的组成部分

类名(全类名)= 包名(地址)+ 类名简称

不同包中,便可以出现同名的类

命名规范:

第一级:项目类型 com,org,gov,edu等

第二级:公司名称 oracle,sun,huawei,ali等

第三级:项目名称 oa,erp,cms等

第四级:功能模块名称

在类中,使用其他包中的类时,需要使用import关键字导入类的地址(全类名)(java.lang包中的类比较特殊,使用时不需要导入)

类中可以定义:

1.成员变量(非静态成员变量属于对象,每个对象中都有一份;静态的成员变量属于类,和类一样,只有一份)

2.成员方法(非静态的成员方法,属于对象,可以使用非静态的成员变量和静态的成员变量,静态的成员方法只能使用静态的成员变量)

3.构造方法(在创建对象后,为成员变量进行初始化,有无参,也有有参的)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值