面向对象的小结
  1 封装
    1 类:特征 行为 整体使用
    2 方法:一段业务逻辑
    3 访问修饰符:数据访问权限
  2 继承
    1 extends
    2 只能继承1个类 但可以实现多个接口
    3 子类继承父类后 将具有
      {
      子类的成员
      父类的成员
      }
  3 多态
    1意义:多种形态 提高扩展性 维护型
     1.1 同一个类型的引用指向不同的对象 有不同的表现   ----cut
     1.2 同一个对象被造型不同的类型时   有不同的功能   ----儿子他妈
    2向上造型
     父类的引用指向子类的对象
    3强制转换
     3.1 引用指向的对象就是该类型的
     3.2 引用指向的对象实现了该接口
     3.3 转换失败,classCastException类型转换失败哦
      建议强转之前进行加instanceof判断


面向对象内容
 1类
  对象

类是对象的模板
对象时类的实例

先找对向 抽类 设计成员变量 和方法
成员变量 对象的特征
方法 对象的行为
一个类可以创建多个对象
这些对象 结构相同 数据不同

引用类型之间画等号 传址 指向同一个对象
直接类型之间画等号 传值 赋值

一个文件中可以有多个类 但只能有一个 public 的类 而且这个类的名必须与文件名相同

引用的值为null 不能点操作了 否则空指针异常

======================================================
   2重载

1.1. 方法的重载
1.1.1. 方法的签名

方法的签名包含如下两个方面:方法名和参数列表。
Java语法规定,一个类中不可以有两个方法签名完全相同的方法,

即:一个类中不可以有两个方法的方法名和参数列表都完全相同,

但是,如果一个类的两个方法只是方法名相同而参数列表不同,是可以的。下面看下如下代码:

-----------------------------------------------------------------
  构造方法

构造方法 与类名同名 而且没有返回值类型
构造方法常常给成员变量初始化
构造方法传减对象时被自动调用
若不写构造 编译器 默认提供了一个无参构造
若自己写了 编译器不再默认提供
构造方法可以重载

this 指代当前对象 谁调用就是谁
局部变量给成员变量赋值     就近原则  全是局部变量
类中的普通方法 默认的都隐式的有个this  成员和局部没冲突的时候 如果冲突就必须有this
this.成员变量名   访问成员变量
this.方法名()     调用方法
this()            调用本类的构造方法

引用类型
  数组

============================================
 3内存管理

程序报内存不够 是jvm内存不够    修改jvm配置  堆 栈 方法区 不同的东西 放的位置不同
堆 new 类 数组 接口 对象 成员变量
栈 局域变量
------------------------------------------------------------

堆用于存储new的对象,包括成员变量
当对象没有任何引用指向时 被视为垃圾
System.gc() 垃圾回收器不定时回收堆中的垃圾
对象被回收 成员变量跟着消失
想快些 通过gc回收方法 可建议快点来收
当无用对象一直没有被回收时 会造成内存的泄漏 严重的泄漏 会造成程序的崩溃 所以建议确定对象不在使用时 及时将对象设为null
-----------------------------------------------------------------------
栈 用于存储所有局部变量
 调用方法时,在栈中分配该方法对应的栈帧 栈帧中包括方法参数及局部变量 统称局部变量
 方法调用结束后 栈帧被清除 局部变量随之消失
--------------------------------------------------------------------
方法区 用于存储类的字节码 类中的字节码信息以及方法 方法只有一份

======================================

继承

          继承 有效实现代码的重用 是为了多态
           继承后 子类具有自己所特有和父类共有的 属性和方法

           extends 只能继承一个
           构造子类之前 必须先构造父类 子类第一行默认有super();调用父类无参构造函数(构造器是不能被继承的)

              super 指代当前对象的父类对象
              super.   父类的成员变量
              super.方法  父类的方法
              super()   父类的构造方法

===================================

4重写

两个类 (子 父)
  签名相同 方法体不同
  子重写了父
 能点出来什么 看类型
 重写后调那个方法 看对象
  Aoo
  Boo
  Aoo g()

-----------------------------------

             两小一大

-----------------------------------

      重写与重载区别

重写
方法重写发生在父子类之间,
需要从写的方法必须与父类方法一致,
访问权限可以上升 不可以下降
 重载 :
 发生在一个类中,
 两个方法的方法名一致,方法参数不同,
 与返回值和访问权限无关

=======================================================

访问修饰符

访问控制修饰符
public :      公有的         同类 同包 子类 其他
protected :   受保护的       同类 同包 子类
default                 默认          同类 同包
private :     私有的          同类
类的访问修饰 public 默认
类成员访问修饰 4个全可以

-------------------------------------------------------------------------------------
  packge import

=========================================================
 static 静态的 
              成员变量 静态变量 类 一份 类名.静态变量名

            何时用: 所有对象共享这一数据
               实例变量 
             静态方法 类名.静态方法名   没有隐式的this的传递 其中不能你访问实例变量
              何时用 方法的处理只与方法的参数有关 与对象无关
             块 属于类 方法区 一份 
             类被加载时执行 只执行一次
             何时用 初始化静态资源

----------------------------------------------

静态方法中只能直接访问静态成员   可以new一个 间接访问
非静态方法中 可以直接访问静态和非静态成员
-----------------------------------------
何时用静态方法
方法与对象无关 只与方法参数有关
Math.random()
Arrays.sort()
---------------------------------------------------

===========================================================
 final 不可变
               1 修饰变量 意味变量不可改变
             2 修饰方法 方法不能被重写
             3 修饰类    类不能被继承

------------------------------------------------

        

1.1final 修饰变量
a》修饰成员变量 两种方式初始化
声明同时初始化
构造函数初始化

b》也可修饰局部变量 使用前初始化即可

===========================================================
 5抽象类           abstract修饰词     被子类继承 封装公共的成员

               抽象类的特点
                 1 有构造器的
                 2 可以有实现方法 有方法体 也可以没有方法体
                 3 可以没有抽象方法
                 4 抽象类 不可以面向对象

------------------------------------------------------------------------------------
  接口            interface声明      指定 一个标准 规范 限制子类的行为

接口可以看成是特殊的抽象类  是一个标准 一个规范   引用类型
遵守了标准 就能干某件事
接口 由interface 关键字定于 只能包含 常量 和抽象方法
接口 不能 实例化-----完全抽象的抽象类 需要被实现
类实现接口后 必须实现接口中所有抽象方法  public
一个类可以实现多个接口
若又继承又实现时 先继承后实现
向上造型 父类可以是接口 抽象类注明引用子类对象
类实现接口  接口继承接口

=======================================================================
 6多态

向上造型          父类型声明子类 通用 但只能调用父类 类型  不能 使用子类特殊部分

-------------------------------------------------------------------------------------------------
  内部类            

                  定义成员内部类
                 一个类outer可以定于在另一各类内部 inner
               默认省略了Outer.this.(当前类的外部类对象)
               内部类对象一般只在外部类中创建
              inner 通常只服务于 Outer
              inner 可以直接访问 outer的成员outer.this.name  包括私有的

-------------------------------------------------------------------------------------

内部类 四种:匿名内部类 成员内部类 静态内部类 局部内部类
          1 成员内部类
          class FemaleMonkey{
          class LiuWM{
          }
          }    //相当于成员方法 可以有构造期
         
        2静态     class FemaleMonkey{
          static class LiuWM{
          }
          }   //引用外部 的必须是static
         
        3局部  public void eat(){
          (只能final) class Banana{
        
        }   
        }
        4匿名类   new Tread(){};   //实现接口

===============================================================

转载于:https://www.cnblogs.com/u0mo5/p/3976323.html

面向对象---大纲笔记相关推荐

  1. C# 面向对象学习笔记

    目录 大纲笔记 代码笔记 最近暂且不忙(Working fish),突然想学习下C#,在慕课找到了kong66老师的C#面向对象编程课程,花了3个晚上看完后受益匪浅.整理了一下笔记和代码,以供日后查询 ...

  2. C语言郝斌视频学习一 变量为什么要初始化和一个小例子以及大纲笔记

    在给变量分配内存时,很可能这段内存存在以前其他程序使用留下的值.当使用VC编译器,若编译器发现没有给变量赋值而使用,就会返回一个以"85"开头的很大的数字(此时该段内存中为一个垃圾 ...

  3. xman的思维导图快捷键_一次性入门大纲笔记神器“幕布”,支持一键生成思维导图...

    很多人都有记笔记的习惯,我们的老师经常教导我们"上课要记笔记".其实老师说的不做,只不过我们大部分人并没有按照老师的要求去做,或者把老师的要求当做一种"作业"来 ...

  4. Python--从基础到面向对象全过程笔记

    从基础到面向对象全过程笔记 01--类型转换.py 02--输入与输出.py 03--比较运算.py 04--分支.py 05--判断输入的年份是否是闰年.py 06--条件语句嵌套.py 07--随 ...

  5. 大纲笔记、思维导图神器“幕布”,免费领取几年高级会员

    大纲笔记.思维导图神器"幕布",免费领取几年高级会员  Lan   2020-04-22 16:00   228 人阅读  0 条评论 免费版与高级版的区别 免费版 高级版 文档主 ...

  6. 大纲笔记转换为思维导图的,不仅仅只有幕布才能实现

    幕布是一款非常好用的思维工具,可以帮助我们高效地整理知识和内容,而且有一个非常好用的功能,就是可以帮助我们快速把我们制作的大纲笔记转换为思维导图.帮助我们通过思维导图的方式快速浏览和学习笔记. 大纲笔 ...

  7. 一次性入门大纲笔记神器“幕布”,支持一键生成思维导图

    很多人都有记笔记的习惯,我们的老师经常教导我们"上课要记笔记".其实老师说的不做,只不过我们大部分人并没有按照老师的要求去做,或者把老师的要求当做一种"作业"来 ...

  8. 极简大纲笔记 | 一键生成思维导图 mubu

    幕布,不只是大纲笔记,更是一种思考方式. 在幕布中,大纲笔记与思维导图可以一键转换,再也不需要为思维导图的编辑而头疼 幕布帮你将宝贵的精力节省下来,让你专注于内容创作. 幕布的几个优点: 思维导图,超 ...

  9. 最适合学生的大纲笔记

    如果你是一个学生,你可能总是在寻找提高工作效率的方法.大纲笔记是帮助你通过软件勾勒你的想法的工具. 什么是大纲笔记? 大纲软件是一种类型的软件,它通过在树状结构中分层组织文本来帮助组织你的想法.使用层 ...

最新文章

  1. arduino出现java错误_arduino在上传的时候出现这样的错误,在线求助大神!!!
  2. 兼容性好的overflow CSS清除浮动一例
  3. 用另一种方式来讲解代理模式~
  4. linux主机ip数据包抓取,tcpdump和ngrep抓不到本机数据包
  5. Struts2校验器(一)之规格文件
  6. 简单的ideatomcat热加载
  7. Logistic回归分析
  8. VOT数据集下载——(vot2013到vot2019)
  9. Micron(美光)内存颗粒的命名规则,7lk17d9PTK,MT29F2G08ABAEA(矿机自带)
  10. 字体的分类图示——对网页设计很有益的图
  11. JavaWeb随手笔记
  12. 11 系统建模语言SysML实例——蒸馏器
  13. leetcode 507 完美数
  14. Chrome网页翻译失效的解决方案
  15. ie httpwatch抓包
  16. 用Arcgis生成Shp的Xml格式
  17. 卡诺图最简化SOP/POS表达式
  18. 数据结构 第一章 数据结构绪论
  19. [线性代数] 1.1 二阶与三阶行列式
  20. 数据库优化的方法及步骤

热门文章

  1. oracle图形工具创建作业,oracle入门(2)—— 使用图形工具navicat for oracle
  2. ggthemes包:丰富ggplot2的表现力
  3. python如何打开txt文件、并算词频_Python 合并多个TXT文件并统计词频的实现
  4. Python实现机器学习
  5. 把计算机怎么连接手机的网络助手在哪里,手机连接电脑上网,详细教您手机如何连接电脑上网...
  6. C语言:对包含10个整数的数组进行如下的操作,从下标为0的元素开始到最后一个元素,依次向前移动一个位置。
  7. spring hibernate druid mysql_使用Spring4的JavaConfig整合Druid Hibernate4.3
  8. 拆分是解决大规模应用问题的本质
  9. Spark如何定位导致数据倾斜的代码
  10. Presto为什么快