zoukankan      html  css  js  c++  java
  • 面向对象的基本理解

    学习编程一直没有感觉到面向对象的精髓所在,这里写写对面向对象的理解(java)

    主要说说下面几个方面:

      •类和对象

      •信息的封装和隐藏

      •构造方法

      •方法的重载

      •this 关键字

      •函数的参数传递

      •package语句/import语句

     

    •类和对象

    –理解面向对象的概念   

    •面向过程

          在一个结构体中定义窗口的大小,位置,颜色,背景等属性,对窗口操作的函数与窗口本身的定义没有任何关系,如HideWindow,MoveWindow,MinimizeWindow,这些函数都需要接受一个代表要被操作的窗口参数 ,是一种谓语与宾语的关系 。

    •面向对象

          定义窗口时,除了要指定在面向过程中规定的那些属性,如大小,位置,颜色,背景等外,还要指定该窗口可能具有的动作 ,如隐藏,移动,最小化等。这些函数被调用时,都是以某个窗口要隐藏,某个窗口要移动的语法格式来使用的 ,这是一种主语与谓语的关系。

    •面向对象的三大特征

      –封装  (Encapsulation)
      –继承  (Inheritance)
      –多态  (Polymorphism)

    •面向对象的思想概述

          类(class)和对象(object)是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。

        如果将对象比作汽车,那么类就是汽车的设计图纸。所以面向对象程序设计的重点是类的设计,而不是对象的设计。

    –类的定义 

    –声明类、属性、方法

    –创建、使用对象

    –对象的生命周期

    –匿名对

      •我们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象, 如:new Person().shout();
      •如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
      •我们经常将匿名对象作为实参传递给一个函数调用。

    •信息的封装和隐藏

    –信息封装和隐藏的必要性

         使用者对类内部定义的属性(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。

         Java中通过将数据声明为私有的(private),再提供公开的(public)方法:getXXX和setXXX实现对该属性的操作,以实现下述目的:

      –隐藏一个类的实现细节;
      –使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;
      –便于修改,增强代码的可维护性;
    public class Animal{
        private int legs;          //将属性legs定义为private,只能被Animal类内部访问
        public void setLegs(int i){  //在这里定义方法 eat() 和 move() 
            if (i != 0 && i != 2 && i != 4){
                 System.out.println("Wrong number of legs!");
                 return;
            }
            legs=i;
        }
        public int getLegs(){
            return legs;
        }
    }
    public class Zoo{
        public static void main(String args[]){
            Animal xb=new Animal();
            xb.setLegs(4);      //xb.setLegs(-1000);       
             xb.legs=-1000;      //非法
            System.out.println(xb.getLegs());
        }
    }
    View Code

     

    •构造方法

    –构造器的定义、作用

    •构造方法的特征
      –它具有与类相同的名称;
      –它不含返回值;
      –注意:在构造方法里不含返回值的概念是不同于“void”的,在定义构造方法时加了“void”,结果这个方法就不再被自动调了。

    •构造方法的作用

          -当一个类的实例对象刚产生时,这个类的构造方法就会被自动调用,我们可以在这个方法中加入要完成初始化工作的代码。这就好像我们规定每个“人”一出生就必须先洗澡,我们就可以在“人”的构造方法中加入完成“洗澡”的程序代码,于是每个“人”一出生就会自动完成“洗澡”,程序就不必再在每个人刚出生时一个一个地告诉他们要“洗澡”了。  

    –分析对象创建过程内存状态的变化


    •Packetage语句

     
     
     
     
  • 相关阅读:
    批处理命令系列
    CMD批处理之PC查看连过的WIFI密码
    数据结构与算法之各种方法遍历二叉树
    二叉树同构判定算法
    卡拉兹(Callatz)猜想
    Java之字符串比较大小
    Java报错之StackOverflowError
    火绒勒索病毒诱捕技术浅析
    数据结构与算法之二叉链树
    数据结构与算法之广义表的基本运算
  • 原文地址:https://www.cnblogs.com/tech-bird/p/3511064.html
Copyright © 2011-2022 走看看