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.对象用完之后就变成垃圾内存,可以被垃圾回收器回收

  • 相关阅读:
    GTK+ 3.6.2 发布,小的 bug 修复版本
    RunJS 新增 Echo Ajax 测试功能
    Mozilla 发布 Popcorn Maker,在线创作视频
    Sina微博OAuth2框架解密
    Mina状态机State Machine
    Mozilla 发布 Shumway —— 纯JS的SWF解析器
    Code Browser 4.5 发布,代码浏览器
    ROSA 2012 "Enterprise Linux Server" 发布
    ltrace 0.7.0 发布,程序调试工具
    Artifactory 2.6.5 发布,Maven 扩展工具
  • 原文地址:https://www.cnblogs.com/wqbin/p/11146247.html
Copyright © 2011-2022 走看看