皮卡丘的皮JavaSe 0717----递归、面向对象、构造方法初讲

JavaSe 0717

数组续讲

数组:可以存储多个数据类型一致的元素,且JAVA中数组一旦定义长度就固定了
     可以存储基本数据类型,也可以存储引用数据类型(数组,类,接口)
     //快速生成方法 先写出方法名和返回值,然后纠错 
二维数组:就是元素为一维数组的数组
定义语法:动态初始化:
        int [][] arr=new int[3][2];
        3,表示二维数组的长度即三个一维数组
        2,表示一维数组的长度
举例:   int [][]arr=new int[3][];
        System.out.println(arr[0]);
        输出为 null
        int [][]arr=new int[3][2];
        System.out.println(arr[0]);
        输出为  一维数组对应的地址
还有就是 new 一个新数组会覆盖原来的地址
        静态初始化:
        int[][] arr=new int[][]{
     {
     },{
     },{
     }};
        简写 int[][]arr={
     {
     },{
     },{
     }};
二维数组的遍历:
         10.fori        

递归

递归的概念:在方法中调用方法本身就叫做递归
递归注意事项:递归要有出口,不然就是死递归(死递归就会造成栈溢出  stack over flow error)
           递归次数不宜过多 (亦会死递归)
递归体现的是拆分合并的思想
所以会对递归次数进行限制,满足一定次数 return

    
调用方法时,有时要进行参数传递
          区别:基本数据类型作为参数传递 属于值传递,就是把实参的值传过去,形参改变不影响。
               引用类型作为参数传递,传递的地址值,形参会改变实参。
举例如下:  
        可以发现在 change 数组这种引用类型形参会改变实参,但是基本数据类型在方法调用结束后,会发生生弹栈。
        

面向对象

面向对象的特征:
        封装(encapsulation)
        继承(inheritance)
        多态(polymorphism)

事物由属性和功能组成     事物---------class 类
                      属性         成员变量
                      功能         成员方法
定义类就是定义类的成员(成员变量和成员方法);
成员变量和局部变量的区别:
局部变量:定义在方法中的变量或方法声明中的变量(形参),属于方法,随方法调用或完成产生与消失。局部变量没有默认值,必须赋值才能使用,存储在栈内存。

成员变量:类中方法外的变量,属于对象,也叫实例变量,随着对象创建而产生,随着对象回收而消失,成员变量有默认值,存储在堆内存。

注意:(1):局部变量和成员变量名字重名时,遵循就近原则。即先在方法内找,找不到再去成员范围内找。再找不到报错。
     (2):多个类可以并列的定义在一个Java文件当中,但文件中 public只能给其中带有入口的一个类中。
     (3)采用
        对象名.成员变量名=值,这种方式给成员变量设置值时,不能排除一些不合理数据例如年龄200岁,这时会加 private 这个权限修饰符,可以修饰成员变量,也可以修饰成员方法,被修饰的对象只能在本类中。
为了解决这个问题:提供 public 设置和获取的方法,让外界通过调用方法来给成员设置和获取方法。   
        public  公共修饰符可以修饰类,成员变量,成员方法
        protected 出了包就访问不到了
        default 缺省的 
        private 私有修饰符可以修饰类内方法,成员变量
当调用set方法时,形参的名称和成员变量的名称重名了,把成员变量就致盲了。这时候为了区别成员变量和局部变量的,可以使用一个关键字 this.举例说明:
        private String name;
        private int age;
 
        public void setName(String name) {
     
        this.name = name;
       }
        public  void setage(int age){
     
        this.age=age;
       }
哪个对象调用这个方法,方法中的 this 就代表这个对象
快速生成:ALT+INSERT,选getter and setter  
匿名对象:
       就是没有名字的对象,一般应用在调用方法,仅调用一次的情况下,或者匿名对象作为实际参数传递。

构造方法

构造方法概述和作用:
    构建对象,并对对象成员进行初始化
构造方法和格式特点:
    构造方法的方法名和类名相同,没有返回值连 void都没有;
构造方法的作用就是用来对类进行实例化。
也可以借助有参构造完成类的实例化。
举例: 
    Student student=new Student();
    Student student=new Student(name:"张三");
    Student student=new Student(name:"张三",age:23);
注意:一旦手动给出了有参构造,那么系统将不再提供默认的无参构造方法。
创建一个对象的步骤: student s=new studen();
步骤如下:(1):加载Student.class文件进内存
	    (2):在栈内存为s开辟空间
	    (3):在堆内存为学生对象开辟空间
	    (4):对学生对象的成员变量进行默认初始化
	    (5):对学生对象的成员变量进行显示初始化
	    (6):通过构造方法对学生对象的成员变量赋值
	    (7):学生对象初始化完毕,把对象地址赋值给s变量

你可能感兴趣的:(递归,面向对象构造方法,java)