Bootstrap

JAVA面向对象之封装

JAVA面向对象之封装

  1. 封装的定义
  • 封装是面向对象的三大特征之一,是为了避免出现不合理的值,而对成员变量的访问做出一些限制,不允许外界随意访问。
  1. 如何实现封装
    2.1 Java一些关键字的访问范围
    在这里插入图片描述
    2.2 在定义一个类的时候,将类中的属性私有化,即使用private关键字进行修饰,如果外界想要访问,需要调用指定的方法
class student {
   private String name;
   private int age;

   //getName方法是获取name
   public String getName() {
       return name;
   }

   //setName是设置name
   public void setName(String name) {
       this.name = name;
   }

   public int getAge() {
       return age;
   }

   public void setAge(int age) {
       this.age = age;
   }
}
  1. 方法的重载和递归
    3.1方法的重载

    • 重载的定义:如果同一个类中包含了两个或两个以上方法名相同,方法参数的个数、顺序或者类型不同的方法,则成为方法的重载

    • 重载通过传入的不同参数决定调用那个重载的方法,需要注意的是,方法的重载和返回值无关,它只需要满足俩个让条件,一是方法名相同,二是参数个数或者参数类型不同或者参数的顺序不一样

class Test01 {
   public static int add(int x, int y) {
       return x + y;
   }

   public static double add(double x, double y) {
       return x + y;
   }

   public static double add(int x, double y) {
       return x + y;
   }

   public static void main(String[] args) {
       System.out.println(add(1, 2));//3
       System.out.println(add(1.2, 2.3));//3,5
       System.out.println(add(1, 2.2));//3.2
   }
}

3.2 方法的递 归

  • 递归就是在一个方法内部调用方法的本身,递归必须要有结束的条件,否则会陷入无限递归的状态,永远无法结束递归的钱调用
class Test02 {
   //使用递归求1-n的和
   public static int sum(int n) {
       if (n == 1) {
           //满足条件结束递归
           return 1;
       }
       return n + sum(n - 1);
   }

   public static void main(String[] args) {
       System.out.println(sum(9));//45
   }
}
  1. 构造方法
    4.1构造方法是类的一个特殊成员,会在类实例化对象的时候被自动调用
class Test03{
    /**
     * 定义构造方法时的注意点
     * 1、方法名与类名相同
     * 2、没有任何返回值
     * 3、方法中不可以使用return来返回一个值,但是可以单独使用return来结束方法
     * 语法格式
     * [修饰符] 方法名 ([参数列表]){
     *     //方法体
     *     }
     * }
     */
    public Test03(){
        System.out.println("Test03的无参构造方法生成");
    }
}
  • 有参构造方法的使用
class Test04{
   String name;
   int age;
   public Test04(String n,int a){
       name = n;
       age = a;
   }
   public  void print(){
       System.out.println("我叫:"+name+",我今年"+age+"岁了。");
   }

   public static void main(String[] args) {
       Test04 test04 = new Test04("张三",20);
       test04.print();//我叫:张三,我今年20岁了。
   }
}
  1. 关键字
    5.1this关键字:this关键字代表了所属函数的调用者对象,如果存在同名成员变量与局部变量时,在方法内部默认是访问局部变量的数据,可以通过this关键字指定访问成员变量的数据
    5.2static关键字:static是一个修饰符,用于修饰成员(成员变量,成员函数),static修饰的成员变量 称之为静态变量或类变量。static修饰的成员被所有的对象共享。static优先于对象存在,因为static的成员随着类的加载就已经存在。static修饰的成员多了一种调用方式,可以直接被类名所调用(类名.静态成员)。static修饰的数据是共享数据,对象中的存储的是特有的数据。
;