Java Day13

引用变量的注意事项

引用类型变量()用于存放对象的地址,可以给引用类型赋值为null,表示不指向任何对象

当某个引用类型变量为null时无法对对象实施访问(它没有指向任何对象),如果访问成员变量或调用方法,会产生NullPointerException异常/空指针异常(还有两种:算数异常、数组下标越界异常)

public class Boy {
    String name;
    Boy() {}
    Boy(String name) {
        this.name = name;
    }
    void show() {
        Systerm.out.println(name);
    }
    public static void main(String[] args) {
        Boy b3 = null; // 给 赋值为null
        b3.show(); //运行会发生空指针异常,因为b3是在栈区申请的内存空间;但是调用成员方法后打印的值是栈区空间存储的堆区地址所指向的具体值,此b3中存放的null没有指向任何堆区空间,便无法获取堆区中的任何值   
        Boy b1 = new Boy("AA"); 
        Boy b2 = b1
        b3.show(); //正常打印
    }
}

递归

案例编程实现参数n的阶乘并返回

//第一种 递推
public class MultipleTest {
    int MulT(int n);
        int num = 1;
        for(int i=1,i<= n,i++){
            num *=i
        }
        return num;
    public static void main(String[] args){
        MultipleTest mt = new MultipleTest();
        int res =MulT.MulT(5);
        System.out.println("n的阶乘结果是"+res);
    }
}
//第二种 //递归

public class MultipleTest {        
    int MulT(int n) {
        if(1 == n){
            return 1;
        } //此语句块可以简写为, if(1 == n) return 
        return n*MulT(n-1); // MulT(n)=>n*MulT(n-1)=>n*(n-1)*MulT(n-2)=>......=>n*(n-1)*(n-2)*......*1
    public static void main(String[] args){
        int res =MulT.MulT(5);
        System.out.println("n的阶乘结果是"+res);
    }
}  

方法2思路

Java Day13_第1张图片Java Day13_第2张图片

概念

本质就是在方法体的内部直接或者间接调用当前方法自身的形式

注意事项

Java Day13_第3张图片

案例

编程实现费氏数列中第项的数值并返回(1 1 2 3 5 8 13 21...... )

//递归的方法
public class FeeTest {
    int show(int n){
        if(1 == n || 2 == n) {
            return 1;
        }
        return show(n-1) + show(n-2);
    public static void main(String[] args) {
        FeeTest ft = new FeeTest();
        int res = ft.show(5)
        System.out.println("计算的结果是:"+res); //结果为4
    }
}

Java Day13_第4张图片

代码的拆分

将实现功能的功能方法相关代码和main方法分别放置在不同文件,类名要相同

Java Day13_第5张图片Java Day13_第6张图片

封装

概念

Java Day13_第7张图片

public修饰的类名必须成为代码文件的命名

 实现流程

Java Day13_第8张图片

Java Day13_第9张图片

私有化的使用范围只在大括号内,此时的main方法无法对此进行访问调试

 实现访问,并进行合理值的判断

Java Day13_第10张图片Java Day13_第11张图片

案例

Java Day13_第12张图片

Java Day13_第13张图片

 Java Day13_第14张图片JavaBean是用来描述某一类事物的类,不写main方法

写main方法的类叫做测试类    可以在测试类中创建Javabean类的对象并进行赋值调用

你可能感兴趣的:(java,jvm,开发语言)