面向对象深入

1.面向对象三大特征

a) 继承 inheritance

子类可以从父类继承属性和方法

子类可以提供自己的属性方法

b) 封装 encapsulation

对外隐藏某些属性和方法

对外公开某些属性和方法

c) 多态 polymorphism

适应变量的多种变化

1.1 封装

a)   为什么需要封装

隐藏对象内部的复杂性,只对外公开简单接口。便于外界调用,提高系统可扩展性、可维护性;

b)   实现封装

使用访问权限符

成员四种访问权限

  1. public 公共的

项目可见

  1. protected 受保护的

类本身访问

包内其他类访问

子类访问

  1. default 默认的(包可见)

类本身访问

包内其他类访问

  1. private 私有的

只被这个类本身访问

类的两种访问权限

  1. public

项目中所有类访问

  1. default

同一个包内的类访问

封装要点

  1. 类的属性的处理

a)     一般使用private,除非需要子类继承

b)    提供get/set访问属性,通常方法为public

c)     只用于本类的辅助方法 private

d)    希望其他类调用的方法public

1.2        继承

定义:类是对对象的抽象,继承是对一批类的抽象

意义:提高代码复用性

public class TestExtend {

public static void main(String[] args) {

Mammal a = new Mammal();

a.eat(); //从父类继承了eat();

a.pure();

}

}

public class Animal{

String name = "小脑斧" ;

int age = 2;

public void eat() {

System.out.println("吃饭");

}

}

public class Mammal extend Animal{

public void pure() {

System.out.println("吃奶");

}

}

其他

  1. Java只有单继承
  2. 所有类的公共父类为Object

1.3      方法的重写

a)   == 方法名、参数相同

b)   <= 返回值类型和异常类型子类小于父类

c)    >= 访问权限子类大于父类

Object类

Object类是所有类的基类,其中含有许多方法

1.示例:重写toString (默认返回包+类+@哈希码)

  1. 2.    对象的比较 == 与equal

a)     ==

a)   比较两基本变量的值是否相同

b)   比较两个引用类型内存是否相同,是否指向同一对象

b)    Equal

a)   两对象内容是否相同

1.4      super关键字

b)   super是直接父类对象的引用

c)    可以通过super来访问父类中被子类覆盖的属性和方法

1.5      多态

多态性是OOP中一个重要特性,用来实现动态联编,就是程序的最终状态只有再执行过程才被决定而非编译期间决定

  1. 如何使用多态

a)     引用类型的两种类型

i.           编译时类型:声明时的类型决定

ii.           运行时类型:由对象实际类型决定

b)    多态存在的三个必要条件

i.           要有继承

ii.           要有方法重写

iii.           父类引用指向子类对象

示例

注意:引用类型的类型转换

1.6        final关键字

  1. final关键字可以来修饰变量、类、方法

a)     修饰变量:相当于定义了一常量,不可更改

b)    修饰方法:在子类中不能覆盖

c)     修饰类:无法被继承

Java学习 · 初识 面向对象深入一的更多相关文章

  1. Java学习 · 初识 面向对象基础一

    面向对象基础 1.1面向过程与面向对象的区别 面向过程和面向对象二者都是思考问题的方式,再简单的事物时,可以线性思考时使用面向过程,但当事物较为复杂时,只能使用面向对象设计.但二者并不是对立的,在解决 ...

  2. Java学习 · 初识 面向对象深入二

    面向对象深入 1.            抽象类 a)     声明 i.           抽象方法和抽象类必须用abstract来修饰 ii.           没有方法体,不需要实现 b)  ...

  3. Java学习 · 初识 面向对象基础二

    Package 为什么需要使用package a)   解决类重名的问题 b)   便于管理类 怎么使用package a)   类的第一句非注释性语句 b)   命名:域名倒着写,再加上模块名 注意 ...

  4. Java基础-初识面向对象编程(Object-Oriented-Programming)

    Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...

  5. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  6. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  7. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  8. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

  9. java学习之面向对象概念

    思考的两种方式: 举例: 把大象放到冰箱里 一.面向过程 :[打开冰箱->把大象放里面->关上冰箱门]面向过程注重的是过程,也就是(动作[函数]),然后按照动作依次去执行就好了. 代表语言 ...

随机推荐

  1. jsp内置对象pageContext如何在Servlet中获取值

    pageContext javax.servlet.jsp.PageContext 的实例,该对象代表该JSP 页面上下文,使用该对象可以访问页面中的共享数据.常用的方法有getServletCont ...

  2. <a>标签跳转到Servelet页面并实现参数的传递

    <a>标签跳转到页面不能通过request.setAttribute()和getAttribute()方法获取参数. <a>标签只能通过request.getParameter ...

  3. 确认框,confirm工具封装

    用bootstrap封装了个确认框工具 效果如下 代码如下: /** * 以模态窗做确认框的函数,title为标题栏内容,body为消息体,yesFun为点击确认按钮后执行的函数,执行后会执行关闭并删 ...

  4. 『C++』Temp_2018_12_13 函数指针

    #include <iostream> #include <string> using namespace std; class Test{ private: string n ...

  5. JavaSE环境下的shiro(源自腾讯课堂)

    Shiro作用: 认证(登录).授权(鉴权).加密(用户名/密码加密).会话管理(session).Web集成.缓存 apache官网可以下载 图一 图二 图三 图一 .二是配置文件内容,对于图三的: ...

  6. vue组件间传值详解

    1.父传子----传值要点: <1> 在组件注册的时候必须要使用 return 去返回 data对象;

  7. day 12 生成器和生成器函数以及各种推导式

    一.生成器    本质就是迭代器. 我们可以直接执⾏__next__()来执⾏ 以下⽣成器 一个一个的创建对象 创建生成器的方式: 1.生成器函数 2.通过生成器 表达式来获取生成器 3.类型转换(看 ...

  8. LCD驱动程序

    学习目标:熟悉TFT LCD的概念,分层驱动工作原理和程序编写. 一.LCD 概念 1.  显示器数据组织格式 1)一幅图像成为一帧,每帧由多行组成,每行由多个像素组成.每个像素的颜色由若干位表示,对 ...

  9. django的验证码

    pip install Pillow==3.4.1在views.py中创建一个视图函数 from PIL import Image, ImageDraw, ImageFont from django. ...

  10. Python爬虫系列 - 初探:爬取新闻推送

    Get发送内容格式 Get方式主要需要发送headers.url.cookies.params等部分的内容. t = requests.get(url, headers = header, param ...