JAVA中递归、封装、类与对象、private关键字,this关键字

递归概述:
方法定义中调用方法本身的现象
递归注意事项:
要有出口,否则就是死递归
次数不能太多,否则就内存溢出
案例演示:
实现阶乘。

public class RecursionDemo1 {
    
    
    //   实现阶乘
    public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int a = scanner.nextInt();

        System.out.println(factorial(a));
    }

    public static int factorial(int a) {
    
    
        int sum = 1;
        if (a == 1) {
    
    
            return 1;
        } else {
    
    
            sum = a * factorial(a - 1);
        }
        return sum;
    }
}

案例演示:
需求:兔子问题(斐波那契数列)
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少?
由此可见兔子对象的数据是:1 , 1 , 2 , 3 , 5 , 8 …

public class RecursionDemo {
    
    
    public static void main(String[] args) {
    
    
      
        int a = 20;
        System.out.println(sum(a));
    }

    public static int sum(int a) {
    
    
        if (a == 1 | a == 2) {
    
    
            return 1;
        } else {
    
    
            int num = sum(a - 1) + sum(a - 2);
            return num;
        }
    }
}

面向对象思想概述:
当需求单一,或者简单时,我们一步一步去操作没问题,并且效率也挺高。
可随着需求的更改,功能的增多,发现需要面对每一个步骤很麻烦了。这时就开始思索,
能不能把这些步骤和功能在进行封装,封装时根据不同的功能,进行不同的封装,功能类似的封装在一起。
这样结构就清晰了很多。用的时候,找到对应的类就可以了。这就是面向对象的思想。
面向对象思想特点:
a:是一种更符合我们思想习惯的思想 懒人思想
b:可以将复杂的事情简单化
c:将我们从执行者变成了指挥者角色发生了转换

面向对象思想的特征:

  1. 封装(encapsulation)
  2. 继承(inheritance)
  3. 多态(polymorphism)
封装:

封装的概述:
隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装的好处:

  1. 隐藏实现细节,仅对外提供公共访问方式
  2. 提高代码的复用性
  3. 提高安全性

封装的原则:
将不需要对外提供的内容隐藏起来。
把属性隐藏,提供公共的方法对其访问。
类与对象的概述:
类:是一组相关的属性和行为的集合。
对象:是该类的具体表现
举例:
类 -----人
对象:–具体到某个人比如你自己。
定义类其实就是定义类的成员(成员变量,成员方法)
成员变量:定义在类中方法外的变量
成员变量与局部变量的区别:
成员变量:定义在类中方法外,随着对象的创建而存在,随着对象的消失而消失,存在于堆内存,具有默认初始值。
局部变量:定义在方法中或者方法的声明上的变量,随着方法的调用而存在,随着方法的调用完毕而消失,存在于栈内存,没有默认初始值,必须定义,赋值才能使用。
注意:当成员变量名称与局部变量名称相同时,在方法中使用,采取就近原则。

如何创建对象:
类名 对象名 = new 类名();

private关键字:

  1. 是一个权限修饰符
  2. 可以修饰成员变量和成员方法
  3. 被修饰的成员只能在本类中访问

this关键字:
当我们的成员变量名称与局部变量名称相同时,如果不使用this关键字,就会出现一个问题局部变量隐藏了成员变量的问题(就近原则)

this关键字的特点:
是当前类的对象引用。简单来说,它就是类的一个对象,谁调用这个方法,那么该方法内部的this就代表谁。
案例演示
学生类:
学生的基本类:

public class Student {
    
    
    private int num;
    private String name;
    private int age;

    public int getNum() {
    
    
        return num;
    }

    public void setNum(int num) {
    
    
        this.num = num;
    }

    public String getName() {
    
    

        return name;
    }

    public void setName(String name) {
    
    

        this.name = name;
    }

    public int getAge() {
    
    
        return age;
    }

    public void setAge(int age) {
    
    
        this.age = age;
    }
    }

学生类的测试类

扫描二维码关注公众号,回复: 11922207 查看本文章
public class MyTest {
    
    
    public static void main(String[] args) {
    
    
        Student student1 = new Student();
        student1.setNum(01);
        student1.setName("张三");
        student1.setAge(18);
        System.out.println(student1.getNum());
        System.out.println(student1.getName());
        System.out.println(student1.getAge());
    }
}
~

猜你喜欢

转载自blog.csdn.net/weixin_42093672/article/details/102489920
今日推荐