Java Static关键字与对象引用

本文详细介绍了Java中对象的创建过程,包括值传递与引用传递的概念,并通过实例解释了static关键字的作用,如静态属性和方法。同时,通过模拟卖票的例子展示了静态方法的使用。此外,还探讨了构造代码块和静态代码块的执行顺序,强调了它们在类和实例级别上的区别。

Java 语言中除基本类型之外的变量类型都称之为引用类型。
例如: 我们有一个自定义类为Car(汽车类)
class Car{
String color;
String name;
String model;
}
Car car= new Car();
通常把这条语句的动作称之为创建一个对象,其实,它包含了三个动作

1)右边的“new Car()”,是以Car类为模板,调用Car类的构造函数,在堆空间里创建一个Car类对象。
2)左边的“Car car”创建了一个Car类引用变量。
3)”=”操作符使对象引用指向刚创建的那个Car对象。
我们可以把这条语句拆成两部分:
Car car;
car= new Car();
这样写,就比较清楚了,有两个实体:一是对象引用变量,一是对象本身。

值传递与引用传递

值传递(形式参数类型是基本数据类型):利用数值在其中进行传递。

引用传递(形式参数类型是引用数据类型参数):在计算过程中利用引用的变量进行传递。
基本类型和引用类型的区别
在这里插入图片描述

static 关键字

static被称为静态,可以用来修饰类的属性,方法,代码块,内部类

static属性:静态属性是类的所有对象共享的,即不管创建了多少个对象,静态属性在内存中只有一个。

static方法可以使用对象调用,也可以直接用类名调用,建议用类名直接调用
在static方法内部只能访问类的static属性,不能访问类的非static属性。

模拟卖票

public class TicketSeller{

    private static int ticket=11;//票数只有一份 声明为静态的

    public static void sellticket(){
       ticket=ticket-1;
       System.out.println("卖票的静态方法");
    }

}

public class Test{
 public static void main(String[] args) {
   TicketSeller .sellticket();//没有创建对象也可以访问静态方法
 }
}

代码块

实例代码块: 创建对象时调用,每创建一次对象执行一次
静态代码快: 在类被加载时调用,只执行一次

巩固习题:

    public class HelloB extends Hello { 
        public HelloB() {
    }
        {
            System.out.println("I’m B class");
        }
        static {
        System.out.println("static B");
    }
        public static void main (String[]args){
        new HelloB();
    }
    }
    class HelloA {
        public HelloA() {
        }

        {
            System.out.println("I’m A class");
        }

        static {
            System.out.println("static A");
        }
    }
}

输出结果:static A static B I’m A class I’m B class
1.静态代码块 2.构造代码块3.构造方法的执行顺序是1>2>3
静态代码块是类级别的,构造代码块和构造方法 是实例级别的

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值