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修饰的成员变量或者成员方法,称为实例变量,实例方法,实例变量和实例方法必须创建类的对象,然后通过对象来访问,且必须用对象来调用

相关文章
|
7天前
|
Java
Java面向对象实践小结(含面试题)(下)
Java面向对象实践小结(含面试题)(下)
18 1
|
6天前
|
存储 Java 开发工具
【Java探索之旅】用面向对象的思维构建程序世界
【Java探索之旅】用面向对象的思维构建程序世界
9 0
|
6天前
|
Java
java使用面向对象实现图书管理系统
java使用面向对象实现图书管理系统
|
6天前
|
Java
Java语言---面向对象的三大特征之继承
Java语言---面向对象的三大特征之继承
|
6天前
|
机器学习/深度学习 Java Python
Java面向对象知识体系---基础版
Java面向对象知识体系---基础版
|
7天前
|
安全 Java 编译器
Java面向对象思想以及原理以及内存图解(下)
Java面向对象思想以及原理以及内存图解(下)
17 0
|
7天前
|
Java
Java面向对象思想以及原理以及内存图解(上)
Java面向对象思想以及原理以及内存图解
18 0
|
7天前
|
设计模式 Java
Java面向对象实践小结(含面试题)(上)
Java面向对象实践小结(含面试题)
13 1
|
11天前
|
安全 Java
Java基础&面向对象&继承&抽象类
Java基础&面向对象&继承&抽象类
|
11天前
|
Java
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
【Java基础】详解面向对象特性(诸如继承、重载、重写等等)
12 0