【JAVA】第九节:Java的类和对象3(static静态,继承)

上次介绍了面向对象语言中的一封装特性,这节来介绍静态和继承

目录

一、static静态的成员变量与方法

1.1 定义:

1.2 使用static

1.2.1静态成员变量:

1.2.2 静态成员方法:

二、静态成员变量的初始化

2.1 就地初始化:

2.2 通过get set方法初始化

2.3 构造方法去初始化(使用较少)

2.4 代码块初始化:

2.4.1静态代码块  (当类被加载时,就会执行静态代码块,并且只加载一次):

2.4.2实例代码块:

三、继承(extends)

3.1 继承的特点:


一、static静态的成员变量与方法

1.1 定义:

static是一个关键字,作用是让一个成员变量或者成员方法不属于实例(也就是不能通过对象调用),而是属于类本身

我们为什么要用这个static呢,我来举个例子,比如说有一个学生类,你创建两个对象,分别是张三和李四,他俩是同一个班的,这时创建一个固定的成员变量,就会很方便;

 public static String stuclass;

1.2 使用static

被Static修饰后,成员变量和成员方法有哪些不一样了呢?

1.2.1静态成员变量:

1.2.1静态成员变量:被修饰后,它不依赖于对象,可以直接通过 类名.变量名 的方式去调用,以往的创建对象调用的方式虽然可行,但是不推荐!

另外,普通的成员变量在JVM中会存储在堆中,通过栈的引用去使用,而静态成员变量存储方法区中,连位置都不一样,不同的实例对象共享同一个静态变量。

1.2.2 静态成员方法

静态成员方法同样不依赖于对象,它有下面几个特点,

我们称静态成员方法为类方法,类方法不依赖于对象,使用类名引用,它不可直接使用非静态方法和变量,也不可使用this;如果需要使用,要在内部创建对象,因为非静态方法和变量要通过对象引用。

总结一下:静态不依赖对象,它属于类


二、静态成员变量的初始化

上面介绍了静态的概念,但是一个变量一定需要赋值,那么静态成员变量如何赋值呢(初始化)

2.1 就地初始化:

public static String stuclass = "三班";

2.2 通过get set方法初始化:

public static String getStuclass() {
        return stuclass;
    }

public static void setStuclass(String stuclass) {
        Student.stuclass = stuclass;
    }

Student.setStuclass("6班");//写在main中
System.out.println(getStuclass());

2.3 构造方法去初始化(使用较少)

2.4 代码块初始化:

代码块有很多种,有静态代码块,实例代码,其实很简单,下面展示一下

2.4.1静态代码块  (当类被加载时,就会执行静态代码块,并且只加载一次:

2.4.2实例代码块

当我们一个类中,三种代码块都存在时,它们会有执行顺序

静态代码块==>实例代码块==>构造方法

并且这个顺序不会受代码位置影响,谁前谁后都是这个顺序。

如果静态和实例代码块有多个,就会按顺序执行,构造就看你调用了哪个构造方法


三、继承(extends)

继承从字面意义上来看,就是继承他人的东西,比如继承财产;

在面向对象中,我们把被继承的类叫做 父类/基类/超类,继承的类叫做 子类/派生类,继承做到了代码的复用,提高了开发效率;

3.1 继承的特点:

继承的子类可以直接访问父类的方法和变量;

如果有同名变量,要想调用父类的变量,要用super关键字;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值