IT第二十天

上午

面向对象编程思想

1.组装电脑的设计:

(1)电脑的组成:显示器+机箱

(2)机箱的组成:电源+主板+硬盘

(3)主板所包含的部件:cpu+内存+PCI接口+usb接口

(4)PCI接口:显卡+声卡

(5)USB接口:U盘

2.人的描述:

(1)人按肤色分:黄人+黑人+白人;人按年龄分:老年人+青年人;人按性别分:男人+女人;等等

(2)可以写一个Person类,当去描述一个人时,可以让这个类去实现多个不同的接口,如实现男人的接口、实现青年人的接口、实现黑人的接口等等

抽象类

1.抽象类中可以有抽象方法,也可以有有方法体的方法,抽象类需要继承后才能使用,需要实现该抽象类的所有抽象方法,抽象类不能实例化

异常处理

下午

异常

1.异常的捕获,需要匹配相应的异常类型,或者父类型,否则将造成异常不能够被正常的捕获

2.在try-catch后,finally语句块必被执行,无论异常是否发生,或者在try-catch语句块存在return返回

3.多重catch,当存在多个catch语句块时,会依次执行相应的catch捕获语句块,并且一旦找到匹配的catch语句块,之后的catch语句块都不会被执行

4.如果抛出的异常是非Runtime异常,需要使用throws声明出来,并且声明的类型必须相同,否则可能会造成报错(待理解)

5.子类在重写父类的方法时,抛出的异常不能比父类的方法抛出的异常类型范围法,但是可以抛出多个异常

断言

1.断言主要是在确定某些值时,设立断言,用于判断在程序运行时,是否真的如愿

2.在使用断言前,需要配置环境:-enableassertions

日志文件

1.使用系统的日志生成类进行编写

2.使用第三方的日志插件进行操作日志的生成:log4j

使用方法:

(1)首先需要导入log4j的jar包文件

(2)然后再src目录进行配置文件的编写log4j.properties

(3)声明日志生成的变量,log4j是使用的单例模式进行设计的,因此需要调用其get方法进行获取,

(4)最后在需要输出日志信息的代码行,进行相应的日志输出,如:debug、info、error等

晚上

笔记

1.面向对象的编程思想:电脑组装、人的描述

2.异常处理,包括异常的捕获、多重catch、finally的使用

3.在进行方法的编写时,如果抛出的异常是非Runtime异常,这时需要使用throws进行声明,并且声明的类型必须相同

4.子类在重写父类的方法时,抛出的异常类型范围不能比父类的大,但是可以抛出多个异常,这些多个异常的范围也不长超出父类的异常范围

5.日志文件的使用,使用第三方的log4j.jar,进行程序运行的日志输出

本周总结

本周总结

重点

1.程序设计:单例模式,是程序在多次开启时,始终是上一次的开启状态,而不会产生想全新的应用

2.继承,Object是所有类的基类,包括系统类+用户类

3.重点关注的方法:Object.finalize()的学习理解

4.在继承时,需要对方法进行重写时,建议在方法前面加上@Override关键字,避免重写出错,导致新方法的添加

5.子类只能继承一个父类,但是子类可以拥有多个“父类”,即父类继承了父类……

6.在类的继承中,super()的使用,即:super()表示的是父类的实例,因为父类的构造方法可能带有参数,因此在子类继承父类时,需要在构造方法中使用super()传入参数,从而达到继承

7.关键字protect对父类中属性的控制:父类中显示用protect修饰的属性,在异包的子类中可以访问,但是默认的protect(隐式的)修饰符修饰的关键字不可以访问;而实例化子类的类如果不和父类在同包中,无论如何都访问不到protect修饰的属性

8.在应用继承关系时,父类可以实例化子类,而子类不能实例化父类,因为可能会导致ClassCastException报错,即使是强制转换成子类类型,在运行时会报错ClassCastException

9.继承关系中,实例化时,对于装箱、拆箱的理解

10.接口的编写,接口中的属性必须是静态的,且声明时就应该赋值,一经赋值以后就不可以修改,即finally

11.异常处理:抛出异常或捕获异常并进行处理,多重catch即finally的使用

12.在进行方法的编写时,如果抛出的异常是非runtime异常,这时就需要使用throws对异常进行声明,并且声明的异常类型必须和抛出的异常类型相同

13.子类在重写父类的方法时,抛出的异常的范围不能比父类中方法抛出的异常范围大,但是可以抛出多个异常,范围均应小于父类

14.对于程序运行的日志的输出,使用第三方的jar包,编写相关的代码进行程序执行日志的记录,log4j.jar

15.面向对象编程思想的学习:电脑的组装+人的描述

疑问

1.非runtime异常的声明,非runtime的理解

未完成

1.面向对象编程思想的学习

2.垃圾回收机制Object.finalize()的学习理解

3.代码块finally,在try-catch中的执行逻辑的学习

4.非runtime的理解学习

5.程序执行日志记录的编写联系

6.super关键字的练习使用

7.程序设计单例模式的编写实践

8.图书系统的重新设计编写

之前未完成集中:

1.String数据类型的深入学习

2.在输出double数据类型时,使用DecimalFormat对输出数据格式化

3.之前学习笔记温习

IT第二十天 - 面向对象编程思想、抽象类、异常处理、程序操作日志记录、本周总结 ★★★的更多相关文章

  1. 面向对象编程思想(OOP)

    本文我将从面向对象编程思想是如何解决软件开发中各种疑难问题的角度,来讲述我们面向对象编程思想的理解,梳理面向对象四大基本特性.七大设计原则和23种设计模式之间的关系. 软件开发中疑难问题: 软件复杂庞 ...

  2. 面向对象编程思想(前传)--你必须知道的javascript

    在写面向对象编程思想-设计模式中的js部分的时候发现很多基础知识不了解的话,是很难真正理解和读懂js面向对象的代码.为此,在这里先快速补上.然后继续我们的面向对象编程思想-设计模式. 什么是鸭子类型 ...

  3. 面向对象编程思想(OOP)

    本文我将从面向对象编程思想是如何解决软件开发中各种疑难问题的角度,来讲述我们面向对象编程思想的理解,梳理面向对象四大基本特性.七大设计原则和23种设计模式之间的关系. 软件开发中疑难问题: 软件复杂庞 ...

  4. 面向对象编程思想(前传)--你必须知道的javascript(转载)

    原文地址:http://www.cnblogs.com/zhaopei/p/6623460.html阅读目录   什么是鸭子类型 javascript的面向对象 封装 继承 多态 原型 this指向 ...

  5. PHP中面向对象编程思想的3个特征

    面向对象编程思想的3个特征: 封装: 无非是一个大的指向思想,目的是为了将一个类设计得更为健壮! 其基本做法是: 尽可能地将一个类的成员私有化,只开放那些必不可少的对外的属性或方法,能private的 ...

  6. 面向对象编程思想(OOP)(转发)

    本文我将从面向对象编程思想是如何解决软件开发中各种疑难问题的角度,来讲述我们面向对象编程思想的理解,梳理面向对象四大基本特性.七大设计原则和23种设计模式之间的关系. 软件开发中疑难问题: 软件复杂庞 ...

  7. 面向对象编程思想(OOP)总结

    本文我将从面向对象编程思想是如何解决软件开发中各种疑难问题的角度,来讲述我们面向对象编程思想的理解,梳理面向对象四大基本特性.七大设计原则和23种设计模式之间的关系. 软件开发中疑难问题: 软件复杂庞 ...

  8. day22面向对象编程思想

    day22面向对象编程思想 1.面向过程 面向过程: 核心是"过程"二字 过程的终极奥义就是将程序流程化 过程是"流水线",用来分步骤解决问题的 面向对象: 核 ...

  9. java面向对象编程思想的理解

    1.我们总说java是一门面向对象编程的语言,那什么是面向对象呢? 我是这样理解的,对象是事物存在的实体,如,猪.狗,花早等都是对象,对象由两部分组成.面向对象编程的三大特点:继承,多态,类是封装对象 ...

随机推荐

  1. Mac经常使用快捷键

    Mac使用快捷键会节省非常多时间.使用最多的键就是shift键  option键 command键的组合了.当然一下略微用得多一点点,还有非常多快捷键没一一列举了 进入指定文件夹的一些快捷键 进入 A ...

  2. ZOJ 3822 Domination

    题意: 一个棋盘假设每行每列都有棋子那么这个棋盘达到目标状态  如今随机放棋子  问达到目标状态的期望步数 思路: 用概率来做  计算第k步达到目标状态的概率  进而求期望  概率计算方法就是dp  ...

  3. 非线性规划问题的matlab求解

    函数:[x, fval] = fmincon(FUN, X0, A, B, Aeq, Beq, LB, UB, NONLCON) 返回的x:是一个向量——在取得目标函数最小时各个xi的取值: 返回的f ...

  4. Jquery开发插件的方法

    Jquery未开发插件提供了两个方法: (1)Jquery.extend(object)    -为Jquery类本身添加新的方法;代码如下: $.extend({ add:function(a,b) ...

  5. TabelView的多选模式

    @interface ViewController ()<UITableViewDelegate,UITableViewDataSource> @property(nonatomic,st ...

  6. JS字符串方法总结整理

    //javascript字符串方法总结   1.String.charAt(n)      //取得字符串中的第n个字符   2.String.charCodeAt(n)  //取得字符串中第n个字符 ...

  7. [LeetCode]题解(python):135-Candy

    题目来源: https://leetcode.com/problems/candy/ 题意分析: 有N个孩子站成一条线.每个孩子有个排名.要求1.每个孩子至少一个糖果,2.相邻的孩子,那么较高排名的孩 ...

  8. Altium designer 10如何设置标题栏

    一.修改设置 1.执行Design-Document Option,打开文档属性对话框,设置其中title等参数. 2.执行Place-Text String,按TAB键,将Text属性中设置为&qu ...

  9. Delphi中使用TXMLDocument控件应注意的问题

    今天写了一个类,其中用到了TXMLDocument控件.这个控件我是要动态生成的. 但是却遇到了非常奇怪的问题,下面分享一下 procedure TMainForm.Button1Click(Send ...

  10. Jass 技能模型定义(转)

    Jass是什么?       先阐释一下什么是jass吧,百度:JASS(正确地说是JASS 2)是魔兽3的程序语言,用于控制游戏和地图的进行,也是魔兽游戏和地图的基础. 地图编辑器中摆放的单位(Un ...