美文网首页
面向对象(OOP)一

面向对象(OOP)一

作者: 小焕哥 | 来源:发表于2017-10-23 20:23 被阅读0次

    @小焕哥


    面向对象的基本特性

    1. 万物皆为对象。

    将对象视为奇特的变量,它可以储存数据,除此之外你还可以要求它在自身上执行操作。理论上将,你可以抽取待求解问题的任何概念化为构件,将其表示为程序中的对象。

    1. 程序是对象的集合,它们通过发送信息来告知彼此要做的。

    想要请求一个对象就必须对该对象发送一条信息。更具体的说。可以把消息想象为对某个特定对象的调用请求。

    1. 每个对象都有自己的由其他对象所构成的储存。

    可以通过创建包含现有对象的包的方式来创建新类型的对象。

    1. 每个对象都拥有其类型。

    每个对象都是某个“类”的一个实例,每个类最重要的区别于其它类的特性就是“可以发送什么样的数据给它”。

    1. 某一特定类型的所有对象都可以接收同样的消息。

    方法的重载

    在日常生活中,相同的词可以表达不同的含义————它们被“重载”了。

    • 方法的重载发生在一个类中,方法名称相同,参数列表不同。
      class Bird {//编译器会根据传入的参数自动选择合适的方法
        Bird(int i){}
        Bird(double b){}
      }
      //注意:当重载涉及到数据类型大小转换时,会自动由小到大提升,而由大到小必须事先强转
      
      
    • 当没有构造器时编译器会自动创建一个默认的构造器,但当类中已经定义了一个构造器,则编译器不会自动创建默认构造器。
      class Bird2{
      Bird2(int i){}
      Bird2(double b){}
      }
      public class Tree{
        public static void main(String[] args){
        Bird2 p=new Bird2();//报错,构造函数未定义
        Bird2 p1=new Bird2();
        Bird2 p2=new Bird2();
        }
      }
      
      

    构造方法

    • 构造方法的方法名必须与类名一致。
    • 构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
    • 构造方法的作用是完成对象的初始化工作,他能够把定义对象时的参数传递给对象的域。
    • 构造方法不能由编程人员调用,而要系统调用。
    • 构造方法可以重载,以参数的个数,类型,或排序顺序区分。
      public class Car{
        String color;
        String brand;
        public Car(){//构造
          brand="奥迪";
          color="黑色";
        }
      }
      
      

    构造函数的重载参见上个知识点

    this的用法

    • this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。this 的使用方法与其他对象引用一样,但要注意在方法内部调用同一个类的另一个方法就不必使用this
      public class Apricot{
        void pick(){}
        void pit(){
          pick();//这里不用使用this
        }
      }
      
      
    • 只有当需要明确指出对当前对象的引用时,才需要使用this关键字
    • 区分类中参数名称相同时使用的变量
    public class Book {
       private String title;
       private String author;
       private double price;
       public Book(String title,String author,double price) {
           this.title=title;
           this.author=author;
           this.price=price;
       }
       
       public String getTitle() {
           return title;
       }
       
       public String getAuthor() {
           return author;
       }
       
       public double getPrice() {
           return price;
       }
    
    }
    

    未完待续.............

    相关文章

      网友评论

          本文标题:面向对象(OOP)一

          本文链接:https://www.haomeiwen.com/subject/gjfzuxtx.html