不是怎么还在转啊...

005-面向对象编程-封装

面向对象编程-封装

  • 对象在计算机中是什么样的

    image-20250711213815924

类的基本语法

构造器

  • 创建对象时,对象会自动调用构造器

  • public class Constru {
        int a;
        
        // 无参构造器
        public Constru(){
            a=10;
        }
        
        // 有参构造器
        public Constru(int a){
            this.a=a;
        }
        
    }
    
  • 类如果没有构造器,那么默认自带无参构造器;若有有参构造器,那就不会自带无参构造器,需要自己定义

  • 右键->生成->选择创建构造器

this关键字

  • this十一个变量,可以用在方法中,来拿到当前对象
  • 应用场景:解决变量名称冲突的问题
    • 比如类内函数的形参名和类内成员变量名一样的时候,使用this来标注是类内成员变量

封装

  • 类就是一种封装
  • 封装的设计要求:合理隐藏、合理暴露
  • 如何隐藏?
    • 使用private关键字修饰成员变量,就只能在本类中被直接访问
  • 如何合理暴露?
    • 使用public关键字修饰的get/set方法合理暴露

javabean

  • javabean成为实体类

  • 是一种特殊类,满足以下要求:

    image-20250711221031834

  • 右键->生成->getter和setter方法,按住shift可以全部选中成员患变量,点击确定即可生成所有成员变量的getter和setter方法

  • 分层处理:实体类的对象只负责数据存取,而对于数据的业务处理交给其他类的对象完成,以实现数据和业务处理相分离

static关键字

  • 静态,可以修饰成员变量、成员方法

static修饰成员变量

  • 成员变量按照有无static修饰分为两种:

    • 静态变量(类变量):有static修饰,属于类,在计算机里只有一份,会被类的全部对象共享

      • 可以用对象名去点出这个变量
      • 也可以用类名来点出这个变量
      • 使用场景:可以定义一个计数器,在构造器里让改值加一,这样就知道这个类的对象被创建了多少次、
      • 同一类中访问静态成员变量,可以不写类名,不用写成类名.变量
      public class Student {
          static String name;
      }
      
    • 实例(对象)变量:无static修饰,属于每个对象的。

      • 实例和对象两个概念是等价的
      public class Student {
          int age;
      }
      
      • 只能用对象去点出这个变量

image-20250711223341355

static修饰方法

  • 静态方法,属于类;

    • public class Student {
          public static void printHelloWorld() {
              System.out.println("HelloWorld");
              System.out.println("HelloWorld");
              System.out.println("HelloWorld");
          }
      }
      
    • 可以用对象名调用,也可以用类名调用

  • 实例方法,属于对象。

    • public class Student {
          public void printHelloWorld() {
              System.out.println("HelloWorld");
              System.out.println("HelloWorld");
              System.out.println("HelloWorld");
          }
      }
      
    • 只能用对象名调用

  • 如果不需要访问对象的数据就定义静态方法

  • 如果需要访问对象的数据,那么这个方法必须定义成实例方法

静态方法的应用场景

  • 常见的应用场景
    • 做工具类
      • 例如很多地方需要生成验证码,不必在每个类中都定义一个生成验证码的方法,写在一个工具类中,需要的时候直接用工具类点那个方法调用即可
      • 工具类中都是方法,所以没有创建对象的必要性,所以建议把构造器私有,即创建一个private的构造器,这样就不能在别处创建对象了

静态方法和实例方法注意事项

  • 静态方法可以直接访问静态成员,但不可以直接访问实例成员(包括实例变量和实例方法)
  • 实例方法既可以访问静态成员也可以访问实例成员
  • 实例方法中可以写this,但静态方法不能写this
posted @ 2025-07-18 03:09  Quirkygbl  阅读(5)  评论(0)    收藏  举报