Java面向对象进阶1——static修饰符

简介: 无static修饰的成员变量或者成员方法,称为实例变量,实例方法,实例变量和实例方法必须创建类的对象,然后通过对象来访问,且必须用对象来调用

一、前言


从本文开始是面向对象的进阶学习,会进一步讲解有关面向对象的知识,本文主要是讲述有关static的知识点


二、概述


  • statia是一个修饰符,用来修饰成员方法和成员变量
  • static关键字在Java开发非常的重要,对于理解面向对象非常关键


三、静态变量


1.概述


当 static 修饰成员变量,说明这个成员变量是属于类的,这个成员变量称为 类变量 或 静态成员变量


2.特点


  • 被该类所有对象共享
  • 不属于对象
  • 属于类
  • 随着类的加载而加载,优先对象存在


3.格式


修饰符 static 数据类型 变量名 = 初始值;


4.调用方式


  • 类名调用


类名.静态变量名


例:Person.gender


  • List item


对象名使用


5.代码演示


public class Student {
    //定义成员变量
    private String name;
    private String gender;
    private  int age;
    public static String teacher;
    //空参构造
    public Student(){
    }
    //带参构造
    public Student(String name, String gender, int age){
        this.name = name;
        this.gender = gender;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void show(){
        System.out.println(name + "," + gender + "," + age + ",他的老师是:" + teacher);
    }
}


public class StudentTest {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setName("张三");
        s1.setGender("男");
        s1.setAge(18);
        s1.teacher = "王老师";
        s1.show();
        Student s2 = new Student();
        s2.setName("李四");
        s2.setGender("男");
        s2.setAge(20);
        s2.show();
    }
}

22a7558c8fce4d9c948d266cd63dd61a.png


四、静态方法


1.概述


当static修饰成员方法时,则说明这个成员方法是属于类的,那么这个成员方法称为 类方法 或者 静态方法


2.特点


  • 多用于测试类和工具类中
  • 在Javabean类中很少会使用


🟡工具类


不描述任何事物,只帮助我们实现某一功能的类;如:求和、就平均数等


其特点如下


  • 类名要见名知意
  • 私有化构造方法
  • 方法定义为静态


3.格式


public static void 方法名(){ ... }


4.访问静态方法


类名.方法名称


5.代码实现


public static void  main(String[] args){
    Student.study();
}


五、注意事项


静态方法只能访问静态变量和静态方法


非静态方法可以访问静态变量或者静态方法,也可以访问非静态的成员变量和非静态的成员方法


静态方法中是没有this关键字


六、结语


无static修饰的成员变量或者成员方法,称为实例变量,实例方法,实例变量和实例方法必须创建类的对象,然后通过对象来访问,且必须用对象来调用

相关文章
|
9天前
|
Java 程序员
Java 面试高频考点:static 和 final 深度剖析
本文介绍了 Java 中的 `static` 和 `final` 关键字。`static` 修饰的属性和方法属于类而非对象,所有实例共享;`final` 用于变量、方法和类,确保其不可修改或继承。两者结合可用于定义常量。文章通过具体示例详细解析了它们的用法和应用场景。
20 3
|
2月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
17天前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
19 5
|
22天前
|
Java
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
这篇文章详细解释了Java中static和final关键字的用法,包括它们修饰类、方法、变量和代码块时的行为,并通过代码示例展示了它们的具体应用。
86 0
Java关键字 —— static 与 final 详细解释!一看就懂 有代码实例运行!
|
2月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
29 4
|
2月前
|
存储 Java
Java之静态(static)与实例(instance)
Java之静态(static)与实例(instance)
|
2月前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
14天前
|
存储 Java 程序员
Java基础-面向对象
Java基础-面向对象
11 0
|
2月前
|
Java 开发者
Java 面向对象
Java 是一种面向对象的编程语言,通过对象与类的概念组织代码和数据。面向对象编程的核心包括类、对象、继承、多态、封装和抽象。类是对象的蓝图,定义了属性和行为;对象则是类的实例。继承允许子类继承父类的属性和方法,增强代码复用性;多态则支持通过相同接口调用不同类型对象的行为,包括方法重载和重写。封装通过公共方法隐藏对象细节,提高安全性;抽象则对对象特征进行提炼,通过抽象类和接口实现。理解这些概念有助于设计高效、可维护的 Java 应用程序。
|
2月前
|
Java 开发者
Java编程之旅:探索面向对象的力量
【9月更文挑战第16天】在编程的世界中,Java以其强大的面向对象编程特性而闻名。本文将带你走进Java的世界,一起探索类与对象的奥秘,学习如何通过封装、继承和多态性构建健壮的软件系统。无论你是初学者还是有经验的开发者,本文都旨在提供实用的代码示例,帮助你提升Java技能。准备好开始这段旅程了吗?让我们启程吧!