世界万物皆对象。

面向对象四大特性:继承、封装、多态、抽象

Java中现有类,再有对象。创建对象(对象实例化)必须先创建类。

将对象的特征对应写成类的属性。

将对象的方法对应携程类的方法。

如何创建对象?
        首先要有对象模板:类。
        
        引用类型 引用 = new 引用类型();

类的方法调用
        首先要有对象创建(对象实例化)。
        通过:
           返回值类型 变量名 = 引用.方法名();

return关键字:方法有返回值类型,必须使用或者有目的的结束代码的执行操作

栈:
    栈中存放都是临时变量。

堆:堆中存放对象的完整信息。
        对象创建(实例化)
        对象属性赋值

方法区:
    方法区中存放方法、类的完整信息。

方法的重载:方法名相同,参数列表不同(数量不同,类型不同,顺序不同),实现的功能不同

语法:
       public 类名(参数列表){

}

★★若成员变量为 N 个
        则构造方法的总数最多为 2^N 个。
        其中无参 1 个,有参 2^N - 1 个。

static修饰符:修饰的变量或方法是共享的

this关键字:代表本类的 成员变量或方法

static修饰的方法,不可以使用this关键字

java继承如何实现?
        
        将所有子类中的共有属性、方法,封装在父类中。
        让子类继承父类之后,便可对父类中的公有属性、
        方法直接使用。从而提高了代码的复用性。
    
        将所有子类中的私有属性,写在子类中。
        达到子类私有特性、行为的效果。

继承关键字:extends

public class 子类名 extends 父类名{

}

一旦子类 继承了 父类
        子类便可以直接使用父类的公有属性、方法。

注意事项:
            this可以省略
            this不能存在static修饰方法中
            当构造方法的参数名与成员变量名一致时,
                必须使用this.成员变量与参数区分开。
            this()必须出现在构造方法的第一行。

super:表示父类的
        super关键字,使用在子类中。

a、super.成员变量
        调用父类的成员变量    
           只要存在父类中的公有成员变量,
        就可以使用super.出。

b、super.方法名();
        调用父类的方法。
            只要存在父类中的公有方法,
        就可以使用super.出。

注意:super.成员变量、super.方法名()
        完全可以使用this替换。
        在这两种使用情况下,this与super可以相互替换。

super();
        调用父类的构造方法

父类的引用指向子类对象。(向上造型

向上造型
        父类 引用1 = new 子类1();
        父类 引用2 = new 子类2();

方法重写要求
        a、方法重写发生在子父类之间。
        b、方法名相同、参数列表相同。
        方法签名(方法名+参数列表)相同。
        c、访问权限不能变小。
        d、抛出异常不能变大。

访问权限关键字
        public:公共的
            所有类中都可以使用的。

protected:受保护的
            同包类、子类、本类可以使用
        
        default:默认的(缺省的)
            同包类、本类可以使用

private:私有的
            本类使用

本类    同包类  子类(包外)     所有(其它)类
        public     √      √       √            √

protected  √      √       √            ×

default    √      √       ×            ×

private    √      ×       ×            ×

final的用法:
            a、final修饰成员变量
                声明时必须初始化
                不可以再次赋值

b、final修饰的局部变量
                声明时可以无需初始化
                使用前必须初始化且不能再次赋值。

所以final修饰的变量是常量。

c、final修饰的方法
                不能被重写

d、final修饰的类
                不能被继承

Java面向对象回顾(1)的更多相关文章

  1. Java面向对象----个人参考资料

    Java面向对象 :什么是面向对象.类与对象.封装.构造方法.static关键字.继承.抽象类.接口.多态 一.什么是面向对象 1.面向过程思想 面向过程:(PO,Procedure Oriented ...

  2. 20165310_Exp2实验二《Java面向对象程序设计》

    实验二<Java面向对象程序设计> TDD与单元测试 前期准备: 什么是单元测试? 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证.对于单元测试中单元的含 ...

  3. 20155303 实验二 Java面向对象程序设计

    20155303 实验二 Java面向对象程序设计 目录 一.单元测试和TDD 任务一:实现百分制成绩转成"优.良.中.及格.不及格"五级制成绩的功能 任务二:以TDD的方式研究学 ...

  4. 20165324 实验二《Java面向对象程序设计》实验报告

    20165324 实验二<Java面向对象程序设计>实验报告 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:何春江 学号:20165324 指导教师:娄嘉鹏 实验日期: ...

  5. 2062326 齐力锋 实验二《Java面向对象程序设计》实验报告

    北京电子科技学院(BESTI) 实     验    报     告 课程:   程序设计与数据结构           班级:      1623           姓名:  齐力锋      学 ...

  6. Java面向对象之异常详解

    目录 Java面向对象之异常[一] Java面向对象之异常[二] 捕获异常的规则 访问异常信息 异常对方法重写的影响 finally详解 Java面向对象之异常[一] Java面向对象之异常[二] 往 ...

  7. 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

    084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...

  8. 八、Java面向对象编程

    Java面向对象 初识面向对象 面向过程 & 面向对象 面向过程思想 步骤清晰简单,第一步做什么,第二部做什么... 面对过程适合处理一些较为简单的问题 面向对象思想 物以类聚,分类的思维模式 ...

  9. JAVA面向对象

    JAVA面向对象 对象   我们生活中能看到能摸到的一切事物都是对象.在程序中模拟出生活中的所有东西万物皆对象   只要是对象--属性和行为(方法)   属性   对象有什么   例如:学生有姓名.学 ...

随机推荐

  1. ELK系列~NLog.Targets.Fluentd到达如何通过tcp发到fluentd

    最近火的不能再火的日志框架就是ELK,其中E(Elasticsearch)表示日志存储,L(Logstash)表示日志收集,K(kibana)表示日志的UI界面,用来查询和分析,而其中的L可以使用Fl ...

  2. Oracle学习笔记之用户自定义函数

    自定义函数语法格式:   用户自定义的函数,可以直接在sql语句中直接调用,并且任何一个funciton都必须有返回值,而且该函数声明后,是保存在数据端的,我们随时可以使用:注意:函数只能有一个返回值 ...

  3. 为Android设备添加A2SD支持

          相信很多用Android设备的用户都有这个问题,内部存储太小导致应用只能装那么几个,虽然rom也有提供移动到sd卡的选项,但是仅仅是移动程序文件到sd卡,并不能解决多少问题,多装几个还是会 ...

  4. C 结构体零散知识点

    1.结构体无法把自己作为成员,但可以包含指向自己的指针成员 2.定义不完整结构类型(类型,结构,占用空间无法确定,如void指针,声明没有指明数组长度数组)只能使用小标签,即struct struct ...

  5. MongoDB原子操作

    MongoDB原子操作常用命令: 1. $set: 用来指定一个键并更新键值,若键不存在则创建并赋值. { $set : { field : value } } 2. $unset: 用来删除一个键. ...

  6. JS框架设计读书笔记之-异步

    setTimeout/setInterval 1. 如果回调执行时间大于间隔时间,真正的间隔时间会大一些. 2. 存在一个最小的时间间隔,即使seTimeout(fn,0),在IE6-IE8中大概为1 ...

  7. 你真的懂offset与scroll吗?

    背景 身为一个前端工程师,每次在做关于滚动或者定位之类的交互时,或多或少都会用到offset.scroll之类的元素属性值来计算距离,但是每次都是现用现百度,从来没有真正系统地弄明白其中的原理及用法: ...

  8. CSharpGL(45)自制控件的思路

    CSharpGL(45)自制控件的思路 +BIT祝威+悄悄在此留下版了个权的信息说: 本文介绍CSharpGL实现自制控件的方法. 所谓自制控件,就是用纯OpenGL模仿WinForm里的Button ...

  9. Lua的函数调用和协程中,栈的变化情况

    Lua的函数调用和协程中,栈的变化情况 1. lua_call / lua_pcall   对于这两个函数,对栈底是没有影响的--调用的时候,参数会被从栈中移除,当函数返 回的时候,其返回值会从函数处 ...

  10. 离线缓存 manifest

    程序的离线缓存由一个叫做manifest的文本文件控制,把需要离线缓存的文件列在里面即可,这个列表还可以控制需要缓存的情况,甚至当用户从缓存地址进入到没有缓存的地址应该显示什么 当浏览器下载解析了ma ...