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
静态代码块是类级别的,构造代码块和构造方法 是实例级别的

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值