Java基础(六)static(静态)、final(最终)、abstract(抽象)、interface(接口)

static(静态)

关键字、修饰符 变量、方法、代码块、内部类

1.静态变量

静态变量随着类的加载(方法区的静态常量值)而加载到方法区的静态区,与类同级也叫类变量,通过类名.形式来调用静态变量也可以通过对象来调用静态变量。存储在方法区静态区时会默认给静态变量赋予系统默认初始值。类产生的对象共享一个静态变量(属性),看静态变量是否需要被所有的对象来共享,如果需要共享就设置成静态变量。

方法里可以定义静态变量?
静态变量与类同级,只有方法被调用时里面的内容才能出现,前后矛盾,不能定义

内存图:
在这里插入图片描述
代码:

package cn.tedu.staticx;

public class StaticDemo1 {
   
    public static void main(String[] args) {
   
        //创建对象
        Person p=new Person();
        p.name="郭靖";
        p.age=2;
        p.gender='男';
        //创建对象
        Person p1=new Person();
        p1.name="黄蓉";
        p1.age=3;
        p1.gender='女';
        //输出
        System.out.println(p.toString());
        System.out.println(p1.toString());
    }
}

//定义代表人的类
class Person{
   
    //属性
    String name;
    int age;
    static char gender;

    //定义方法来输出对象的属性值
    public String toString(){
   
        return this.name+","+this.age+","+this.gender;
    }
}

执行结果:
在这里插入图片描述

2.静态方法

静态方法会随着类的加载而加载到方法区的静态区,与类同级也叫作类方法,通过类名.形式来调用也可以通过对象调用。静态区不会给静态方法赋予系统默认初始值,当main方法被调用会加载到栈中执行。

Java中所有的静态信息只能直接使用静态信息,所有的非静态信息可以直接使用静态信息以及非静态信息

package cn.tedu.staticx;

public class StaticDemo2 {
   


    //静态变量
    static int i=1;
    //非静态变量
    int j=2;
    //静态方法可以直接使用静态变量
    public static void m(){
   
        System.out.println(i);
        //静态方法不能直接使用非静态变量
        //成员变量与对象一个级别,静态方法与类一个级别
        //类加载静态方法时不能直接使用还没有出现的信息
        // System.out.println(j);
    }
    //非静态信息与对象同级可以直接使用前面类以及加载信息
    public void n(){
   
        //非静态方法可以直接使用静态变量
        System.out.println(i);
        //非静态方法可以直接使用非静态变量
        System.out.println(
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. 继承(Inheritance):一种面向对象编程的机制,允许一个类从另一个类继承属性和方法。继承的类被称为子类或派生类,被继承的类被称为父类或基类。子类可以重写父类的方法或属性,也可以新增自己的方法或属性。 2. 抽象类Abstract Class):一种不能被实例化的类,只能作为超类被其他类继承。抽象类通常包含抽象方法或抽象属性,这些方法或属性只有声明,没有具体实现。子类必须实现它们才能被实例化。 3. 接口Interface):一种定义了一组方法或属性的抽象类型。接口中的方法或属性没有具体实现,只有声明。类可以实现一个或多个接口,实现接口的类必须实现接口中所有的方法或属性。 4. 多态(Polymorphism):一种允许同一个方法在不同的对象上有不同行为的机制。多态可以通过继承、接口、重载等方式实现。它可以提高代码的复用性和灵活性。 5. 构造函数(Constructor):一种特殊的方法,用于创建对象时初始化对象的属性。构造函数的名称与类名相同,没有返回值。 6. static:一种关键字,用于修饰类的属性和方法。静态属性和方法属于类,而不属于对象。静态属性和方法可以通过类名直接访问。 7. final:一种关键字,用于修饰类、方法和变量。final修饰的类不能被继承,修饰的方法不能被重写,修饰的变量只能被赋值一次。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张艳霞zhangyx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值