zoukankan      html  css  js  c++  java
  • java面向对象1-面向对象概念

    面向对象概念-类与对象的关系

    封装:指隐藏对象的属性和实现细节,仅对外提供公共访问方式,private-构造方法/构造器-this关键字-static关键字(javadoc制作工具类) -代码块

    继承:方法重写-super-子类实例化过程-final-抽象类-接口

    多态:

    1.1 面向对象概念Object-Oriented

    1.1.1 理解面向对象

    面向对象是相对面向过程而言
    面向对象和面向过程都是一种思想
    面向对象是基于面向过程的

    1.1.2 面向对象的特点

    可以将复杂的事情简单化
    将程序员从执行者转换成了指挥者
    完成需求时:
    先要去找具有所需的功能的对象来用。如果该对象不存在,那么创建一个具有所需功能的对象,这样简化开发并提高复用

      1. 开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情
      2. 设计的过程:其实就是在管理和维护对象之间的关系。

    面向对象的特征:

      • 封装(encapsulation)
      • 继承(inheritance)
      • 多态(polymorphism)

    1.2类与对象的关系

    1.2.1类与对象的定义

    使用计算机语言就是不断的在描述现实生活中的事物。java中描述事物通过类的形式体现,类是具体事物的抽象,概念上的定义。对象(实例)即是该类事物实实在在的个体
    不同Dog对象抽象出Dog类。

    1.2.2类的定义

    生活中描述事物无非就是描述事物的属性和行为
    如:狗有颜色,年龄等属性,有跑,叫等行为
    Java中用类class来描述事物也是如此

      • 现实世界中事物的属性:对应类中的成员变量
      • 现实世界中事物的行为:对应类中的成员方法

    定义一个类,其实就是在定义类中的成员(也就是成员变量和成员方法)
    public class Dog{
    public String color; //成员变量
    public void eat(){...} //成员方法
    }

    类成员的写法:

      • 成员变量:

        和之前定义变量的规则一样
        写在类中,成员方法的外边

      • 成员方法:

        和之前定义方法的规则一样

    1.2.3成员变量和局部变量的区别

    成员变量(目前都是实例变量):
      成员变量定义在类中,作用范围是整个类
      实例变量随着对象的创建而存在,随着对象消失;存在于对象所在的堆内存中
      成员变量有默认初始化值(0/0.0/false/null)


    局部变量:
      局部变量定义在局部范围内:方法内,形参上,代码块内
      局部变量存在于栈内存中
      方法或者语句执行完,变量空间自动释放
      局部变量没有默认初始化值,除了形参,使用之前必须赋值

    1.2.4创建对象,使用对象

    类定义:

    //类定义
    class
    Car{ int year;String color; public void run(){ System.out.println(“车在跑...”); } public void turnTo(String direction){ System.out.println(“转向:”+direction); } }

     类使用:

    public class CarDemo{ //想要运行main方法,专门放入一个测试类中
        public static void main(String[] args){ 
            Car c = new Car();//建立对象
            c.color = "black";
            c.run();//调用对象的方法
        }
    }

    1.2.5对象的内存结构

    一个对象的内存结构
    重点:
    1.方法区的概念
    2.成员变量的初始化

    两个变量指向一个对象的内存结构
    重点:多个变量指向同一个对象(多对一关系)

    同类两个对象的内存结构
    重点:方法的共用

     1.2.6匿名对象

    匿名对象是对象的简化形式
    匿名对象两种使用情况:
      1.对象方法仅进行一次调用时,多次调用不适合
      2.匿名对象可以作为实际参数进行传递(可作参)
      3.作为返回值返回
    使用匿名对象的好处:
      1.简化写法,不必定义变量接住对象引用
      2.对象用完之后就变成垃圾内存,可以被垃圾回收器回收

  • 相关阅读:
    20160220.CCPP体系详解(0030天)
    20160219.CCPP体系详解(0029天)
    20160217.CCPP体系详解(0027天)
    Discuz 如何开启 memcache
    20160216.CCPP体系详解(0026天)
    20160215.CCPP体系详解(0025天)
    Linux之父:诺基亚更应选择 Android 平台
    Linux 之父 Linus 的 8 个趣闻轶事
    Linux 中识别 USB 设备名字的 4 种方法
    码农们加班是“心甘情愿”吗?都是被“逼”的
  • 原文地址:https://www.cnblogs.com/wqbin/p/11146247.html
Copyright © 2011-2022 走看看