面对对象--概述

什么是对象?

   +---->对象可以泛指一切现实中存着的事物

   +---->类是对象的抽象集合

什么是面对对象?

  +--->万物皆对象,面对对象实际就是人与万物接触====》面对对象

为什么要使用面对对象语言?

   +--->面对对象符合现实生活,是计算机语言更加符合现实逻辑,从而实现更好的为人服务。

面对对象有什么好处?

   +--->相比面对过程语言,面对过程的--->事事亲为 。
   +--->面对对象相当于请他人做事,能够快速的完成,讲究相互协调。


如何创建对象?

用new关键字创建一个对象,new专门用于调用类的构造方法
                      ---->相当于指向“堆”中的一个内存段

面对对象的三大特征

  1、封装

  2、继承

  3、多态

    +---->封装
      +-->什么是封装
        +---->封装就是该露的露,不该露的不露。
        +--->比如笔记本就是个封装,他把很多东西都封装在一起,我们不需要知道内部的东西,只需要会操作他就行了,而且还有提供接口给我们使用。

为什么要封装?
  +---> 属性的读写控制,数据的安全检查(提高安全性)
    ----> 隐藏实现细节, 减少修改、扩展类时对外界组件的影响,增强易维护性
    ----> 提高软件的可复用性
怎么封装?
  使用private修饰
  再提供get(),set()方法的接口使用。
-----------------------------------------------------
    +---->继承
      +-->什么是继承?
        +---->将很多事物共有的属型和特征(方法)抽取出来形成一个类(父类),其他每种类型就是子类,子类与父类的关系就是继承。

为什么要继承?
    +--->提高代码复用性
    +--->约定好共同行为,相当于定义一套行为标准,提高代码的灵活性和扩展性。
     

怎么继承?
  +--->使用关键字extends

Final 的特性 

  1、被final修饰的类不能被继承(最终类)
  2、被final修饰的变量不能被修改(静态常量)
  3、被final修饰的方法不能被重写(模板设计)

+---->多态
  +-->什么是多态?
  +---->一种事物的多种状态

为什么要使用多态?

  1.可替换性(substitutability)

  2.可扩充性(extensibility)

  3.接口性(interface-ability)

  4.灵活性(flexibility)

  5.简化性(simplicity)

实现多态的条件?
1、继承
2、重写(可以没有)
3、父类的引用指向子类的对象

      什么是引用?
        +--->相当于指针?
        +------->内存地址----->指向存放数据的内存块


java基础--面对对象的更多相关文章

  1. Java学习——面对对象的思想入门

          本文是看过<head first Java>之后的一点感悟,写点东西帮忙以后回忆,Java目前在我的工作中用到还不多,而我又对面对对象的编程非常的感兴趣.曾经在MFC平台上写过 ...

  2. java基础(二) -对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一 ...

  3. Java基础03-12_对象比较

    对象比较 如果说现在有两个数字要判断是否相等,可以使用"=="完成 如果是字符串要判断是否相等使用"equals()" 但是如果说现在有一个自定义的类,要想判断 ...

  4. JAVA基础之对象的初始化

    本文主要记录JAVA中对象的初始化过程,包括实例变量的初始化和类变量的初始化以及 final 关键字对初始化的影响.另外,还讨论了由于继承原因,探讨了引用变量的编译时类型和运行时类型 一,实例变量的初 ...

  5. java基础(一)对象

    对象的创建 Test test = new Test(); Test test = new Test("a"); 其实,对象被创建出来时,对象就是一个对象的引用,这个引用在内存中为 ...

  6. Java基础---其他对象

    第一讲     System类 一.概述 1.System是描述系统一些信息的类,类中的属性和方法都是静态的.不能被实例化,没有提供构造函数. 2.字段摘要 out:标准输出流.默认是控制台. in: ...

  7. Java基础 -- 持有对象(容器)

    一 容器的用途 如果对象的数量与生命周期都是固定的,自然我们也就不需要很复杂的数据结构. 我们可以通过创建引用来持有对象,如 Class clazz; 也可以通过数组来持有多个对象,如 Class[] ...

  8. Java 基础之一对象导论

    对象导论 1.1 抽象过程 所有编程语言都提供抽象机制.人们所能解决的问题的复杂性直接取决于抽象的类型和质量. 汇编语言是对底层机器的轻微抽象. 我们将问题空间中的元素及其再解空间中的表示称为对象.这 ...

  9. Java基础之对象序列化

    1. 什么是Java对象序列化 Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长.但在现 ...

随机推荐

  1. 浅析final关键字

    浅析final关键字 final单词字面意思是"最终的,不可更改的".所以在java中final关键字表示终态,即最终的状态,"这个东西不能被改变". fina ...

  2. linux根据端口号查询来源程序

    1.根据端口号查询进程  netstat -tunlp|grep port 2.根据进程查询来源程序 ps aux | grep pid 上图看出所属进程为2281 上图看出占用8083端口的程序为n ...

  3. 一、Python表达式基础

    Python 能执行简单的计算器的功能: 如>>2+2 ==> 4,1/2==>0.5或者这样写1/2.0==>0.5(取浮点型) 1//2 ==>0 (" ...

  4. ORACLE SQL脚本能否修改字段名称?

    在看到标题时,你先想想:在ORACLE中能否修改一个表的某个字段名呢?如果能的话,你是否还记得SQL脚本如何写的呢,呵呵,写这个的目的是因为在论坛上看见许多信誓旦旦的说ORACLE中不能修改字段名称, ...

  5. Redis和Memcached区别

    本文参考 Redis与Memcached的区别. 如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点: Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set, ...

  6. python抢小米6自动化脚本

    #!/bin/env python # coding=utf-8 from selenium import webdriver import time import unittest class Ge ...

  7. bzoj 3597: [Scoi2014]方伯伯运椰子 [01分数规划 消圈定理 spfa负环]

    3597: [Scoi2014]方伯伯运椰子 题意: from mhy12345 给你一个满流网络,对于每一条边,压缩容量1 需要费用ai,扩展容量1 需要bi, 当前容量上限ci,每单位通过该边花费 ...

  8. UOJ Round #1 [数论 | DP 排列]

    UOJ Round #1 难度很良心啊! 做出了前两题,第三题看到仙人掌就吓哭了. [UR #1]缩进优化 就是求 \[ \sum_{i=1}^n a_i - (x-1)\sum_{i=1}^n\lf ...

  9. BZOJ 2024: [SHOI2009] 舞会 [容斥原理 高精度]

    题意:和上题基本一样,求至少k对a>b的方案数.不取模!!! 做k+1遍容斥就行了 高精度超强!!!几乎把所有的都用上了 然后,注意有负数,所以容斥的时候正负分别保存然后再一减就行了 这是我省选 ...

  10. C# 使用反射获取界面并传参

    // 通过反射创建类库中的实例 try { // 通过反射,获取模块 Assembly assembly = Assembly.LoadFrom(AppDomain.CurrentDomain.Bas ...