7-面向对象

面向对象

  • 面向过程:
    着眼于整个程序的执行流程和功能的具体实现,是一个执行者的身份
  • 面向过程:
    着眼于找到能够帮助自己完成此功能的人,是一个领导者的身份,更符合日常生活中人们处理事情的思想

    类和对象

  • 类:
    类型,一类事物,是这类事物的基本信息和功能行为所组成的集合
  • 基本信息->属性
  • 功能行为->方法
    例如:  
    研究鸟类型  
    属性:品种、毛色  
    方法:飞,吃
  • 对象:
    类的一个具体的实例,获取对象需要创建对象(实例化)

  • 类和对象的关系:
    1. 类是一个抽象的概念,对象是一个具体的概念
    2. 任何对象都具有所属类中所有的属性和方法
   例如:
   研究鸟对象
   属性:品种-鹦鹉,毛色-绿色
   方法:飞-普通的飞,吃-游客给的食物

自定义类型

    格式:
    public class 类名{
        属性
        方法
    }
  • 讲究:
    1. 属性用名词
    2. 方法用动词

创建对象(实例化)

    创建格式:
        数据类型 对象名 = new 数据类型();

    调用属性:
        对象名.属性;

    调用方法:
        对象名.方法();

注意:

  • 对象中成员基本类型是默认赋值0,引用基本类型的默认值是null没有空间。除非new空间或者指向别人的空间,不然没有空间没有地址。
  • 今天有点迷糊的,我想用自定义的对象Plane[] planes = new Plane[3];调用里面的方法。是不行的,它是动态创建,必须用对象来往里面填充。因为这是动态创建,动态创建的引用类型的默认值是null。想要初始化,要用户自己初始化。数组只是容器。
    即便是静态赋值你往大括号里面传入的也是对象:
    比如: //String 类型中的就是String类型对象 String[] string = {"wert","asdf","eerr"}; Plane[] planes = {plane1,plane2}; //静动态都要传入对象才能用,不然默认值是null没有开辟空间的,自然不能用的。
    这样说吧,数组就是容器,你往里面存东西然后通过下标调用。比如静态的你初始化就放入数据然后调用。动态的,你后来放入数据,然后调用。引用动态的,你要后来放入数据,这时候你放入的就是你自己定义的类型对象这才是赋值。
    ```
    例:
    //3虽然是对象,但同时也是对象。基本数据类型也是,即使数字也是元素。
    Integer[] inte = new Integer[2];
    inte[0]=3;

    //str[0]接受到的也是一个对象
    String[] str = new String[2];
    str[0]="hel";

    //plane是对象不能当成基本类型使用,并且如果没有装入对象的情况下是不能调用方法的。但这个plane是可以调用数组方法的。
    Plane[] plane= new Plane[2];
    ```
  • 向外传递引用类型不用返回,因为引用类型是双向的,是地址传递。但是方法内想要获取外部的就要通过参数列表。
  • 类中不用public 修饰的成员是不能被跨包修改的。
  • 直接打印对象时打印的是地址,但是我不想打印地址,我想打印里面的内容。我们知道Arrarys里有toString方法,它是重写了Object(所有类的父类)中的toString。所以我们的类也是继承自他的,我们也重写toString,这样我直接打印对象的时候就不是打印地址而是toString的内容。我不知道toString内部怎么做的但就是能做。
  • 下面这一题由于表达式是从右往左new然后赋值,又因为它的生命周期在for内,所以每一次for循环都会创建一个plane,新的会覆盖老的。
    for (int i =0;i<10;i++){ //自定义飞机类 Plane plane = new Plane(); …… }

猜你喜欢

转载自www.cnblogs.com/macht/p/11547617.html