java基础面向对象_java基础面向对象

一、面向对象之封装

1. 面向对象的三个特征是:封装、继承和多态。

2. Java开发过程:要实现某个功能,首先要找能够实现这个功能的对象,如果没有找到,就自己造一个对象,将要实现的功能定义到对象中,这样以后就可重复利用这个对象。最后,要不断维护对象间的关系。

3. 类和对象的关系:类就是对现实生活中事物的描述,是对具体的抽象;对象就是这类具体的事物,是实实在在存在的个体。

4. 匿名对象的使用方式:对象的方法只调用一次;作为实际参数进行传递。

5. 封装的原则:把不需要对外提供的内容,都隐藏起来;把属性都隐藏,提供公共方法对其访问。

6. 构造代码块:给所有对象进行统一初始化,优先于构造函数运行。

7. 构造函数间的调用,必须使用this关键字,并且必须是构造函数中的第一个语句。

8. static修饰符特点:随着类的加载而加载;优先于对象存在;被所有对象共享;可以直接被类名所调用。

9. 静态代码块:随着类的加载而加载,且只运行一次。

10. 对象加载到内存的过程:静态代码块 -> 构造代码块 -> 构造函数。

11. 实现单力设计模式的两种方式:饿汉式(先初始化对象);懒汉试(延迟加载)。开发时,如果需要将一个类设计成单例,优先使用饿汉式。

二、面向对象之继承

1. 继承的作用:提高了代码的复用性;类与类之间产生了关系,有了这个关系,才有了多态的特性。

2. Java语言支持单继承,支持多层继承吗,而不支持多继承,因为多继承容易带来安全隐患。

3. 使用继承体系的功能:查阅父类功能,创建子类对象使用功能。

4. 子类覆盖父类中的方法,必须保证子类的方法的访问权限大于或等于父类方法的访问权限。

5. 在对子类对象进行初始化时,父类的构造方法也会运行,这是因为在子类的所有构造函数中,默认的第一行,都有一条隐式语句super();。并且,super语句一定要放在子类构造函数的第一行。

6. final关键字:final修饰的类不可以被继承;final修饰的方法不可以被覆盖;final修饰的变量是一个常量,只能被赋值一次;内部类只能访问被final修饰的局部变量。

7. 抽象类的特点:抽象方法必须在抽象类中;抽象类不可以用new创建对象;抽象类中的方法要被使用,必须由子类覆写所有的抽象方法,建立子类的对象调用。如果子类只覆写了父类的部分抽象方法,那么这个子类也是抽象类。

8. 模板方法:在定义功能是,功能的一部分是确定的,一部分是不确定的,而且确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,由子类去完成。

9. 接口的特点:对外暴露的规则;程序的功能拓展;可以多实现;接口和接口之间可以多继承。

三、面向对象之多态

1.

多态的定义:某一类事物的多钟存在形式。

2.

多态的代码体现:父类的引用指向子类的对象,叫做向上转型。这时,如果想要调用子类特有的方法,需要将父类引用强制转换成子类类型,叫做向下转型。

3. 多态的作用:提高了程序的可拓展性和后期可维护性。

4. 多态的前提:需要存在继承或者实现的关系;需要有覆盖操作。

5. 内部类访问规则:内部类可以直接访问外部类的成员,包括私有成员(这是因为内部类中持有一个外部类的引用);外部类要想访问内部类的成员必须要建立内部类的对象。

6.  当内部类中定义了静态成员,该内部类必须是静态的;当外部类的静态方法访问内部类中的成员时,该内部类也必须是静态的。

四、面相对象之异常

1. 异常划分:严重异常,java通过Error类进行描述,一般不写针对性代码对其进行处理;非严重异常,java通过Exception类进行描述,可以使用针对性代码对其进行处理。

2. Throwable类是java中所有错误或异常的超类。

3. 异常的处理语句:try{...} catch{...} finally{...}。catch语句中要定义具体的异常,而不要用Exception。

4. 自定义异常:因为父类已经完成异常信息的操作,所以子类只要在构造时,将异常信息传递给父类(super),那么就可以直接通过getMessage()方法获取自定异常的信息。

5. throws和throw区别:throws使用在函数上,throw使用在函数中;throws后面跟的是异常类,可以有多个,而throw后面跟的是一个对象。

6. 抛出编译时异常(继承Exception),需要在方法上声明该异常。抛出运行时异常(继承RuntimeException)不需要在方法上声明,因为发生运行时异常时,程序无法继续执行。

7. 自定义异常时,如果异常发生,程序无法继续执行,就让自定义异常继承RuntimeException。如果发声异常,经过处理后程序可以继续运行,就让自定义异常继承Exception。

8. finally代码块中定义一定要执行的代码,通常用于关闭资源。当程序执行到System.exit(0)时,finally不会被执行。

9. 子类不能比父类抛出更多的异常。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298236.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 学习笔记 显示压缩文件 gong.zip 的文件内容

#zip -v gong zip zip info: xxx >删除压缩文件中俄smart.txt 文件 #zip -d gong.zip smart.txt deleting:smart.txt >向压缩文件中gong.zip中添加rpm_info.txt文件 #zip -m gong.zip ./rpm_info.txt adding:rpm_info.txt deflated 79% Unzip命令解压缩文件 >将gong.z…

2010年5月系统集成项目管理工程师上午试卷参考答案(讨论版)

鉴于个人精力有限,其他答案将由51CTO相关工作人员不断更新,详见http://training.51cto.com/art/201005/200323.htm以题会友,欢迎跟贴拍砖、讨论。

python qt信号在qml 的使用_QML与Python通信

对于Python3和QML通信,实际上就是 PyQt5QMLPython3混合编程,这是必须的,因为QML做图形界面比较容易,但是做功能实现就用Python比较好,虽然QML也能嵌入 JavaScript代码进行实现,但是这样话还不如用Python来实…

那些35岁的程序员都去哪了

阅读本文大概需要11分钟。大家好,我是findyi,前段时间写过一篇关于大龄程序员的文章:那些40岁的程序员都去哪了,引发了大家的思考和讨论,不少读者私聊问:除了这些出路,还有没有其他可能&#xf…

Sharepoint学习笔记---如何在Sharepoint2010网站中整合Crystal Report水晶报表(显示数据 二)...

在Sharepoint学习笔记---如何在Sharepoint2010网站中整合Crystal Report水晶报表(显示数据一)中,解释了如何把Crystal Report整合到Sharepoint2010并把报表数据显示出来,但这样并不完整,因为我们在开发时是以系统帐户进…

那些拧不开瓶盖的女生全都是装的?理工男这样想......

全世界只有3.14 % 的人关注了爆炸吧知识昨天,超模君我正在思考人生,八岁的表妹突然提着一瓶矿泉水站在了我的面前。她可怜兮兮的说:“我想喝水,但是拧不开”。我:“........."超模君我明明亲眼见过她一口气拧开过…

java 代码同步_Java同步代码块 转

Java 同步块(synchronized block)用来标记方法或者代码块是同步的。Java同步块用来避免竞争。本文介绍以下内容:Java同步关键字(synchronzied)实例方法同步静态方法同步实例方法中同步块静态方法中同步块Java同步示例Java同步关键字(synchronized)Java中的同步块用s…

Office 2010 64位版本

最新的Office 2010有了x86和x64两种不同的版本,众所周知的使用x64版本具有可以支持更大的内存等特点,但是也会出现一定的兼容性问题。其中感觉影响比较大的是Access的32位版本和64位版本创建的数据库无法通用,这样以前创建的Access文件就无法…

JUnit 测试

Junit 使用 1、忽略测试方法。在使用Test的方法上使用Ignore,将不会对此方法进行测试 2、测试套件 解决的问题: 1、对测试类进行统一测试,而不必在单独测试类上一个一个进行测试。 使用JUnit的RunWith以及SuiteClassses注解,Suite…

【另类见解】秒杀并非高不可攀

“一提到秒杀很简单这个话题,我知道要被别人鄙视了:你不懂高并发... 这年头开头不画个思维导图都觉得掉价image谈到秒杀,网络上不少于几千片文章,但是大多大同小异。如果你的微信当中关注了几个编程技术类的公众号,我敢…

我又相信爱情了!

1 圣诞限定款的肥宅快乐水更好喝了吗?不!更贵了2 周边鬼才!这手机壳我爱了3 你以为是个王者,其实是个大脸......4 高温超导材料达到临界温度后能使物体悬浮在不同位置5 火山爆发你见过吗?6 我又相信爱情了!…

opencv计算两数组的乘积_#剑指Offer#12. 构建乘积数组

题目描述:给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1]。其中B中的元素B[i]A[0] * A[1]... * A[i-1] * A[i1]... * A[n-1]。不能使用除法。解题思路:首先,仔细理解题意,B[i]是A数组所有元素的乘积,但是没…

python引用numpy出错_使用numpy时出错

我尝试使用pandas python进行excel操作。在每当我尝试使用pandas库时,它都会给我错误的提示:numpy没有安装。在现在,当我尝试安装pip install numpy和pip安装pandas时,它说需求已经满足了。在但是当我尝试做一个简单的numpy教程时…

中国移动:面向全业务运营的安全管理平台

在2008年的一个电信运营支撑系统论坛上,来自中国移动的集团网络部的安全副处长周智先生做了一个题为《面向全业务运营的安全运行管理系统定位及建设思路》的报告。 在这个报告中,周处首先分析了全业务运营环境下的安全挑战,然后提出了在全业务…

记一次 .NET 某桌面奇侠游戏 非托管内存泄漏分析

一:背景 1. 讲故事说实话,这篇dump我本来是不准备上一篇文章来解读的,但它有两点深深的感动了我。无数次的听说用 Unity 可做游戏开发,但百闻不如一见。游戏中有很多金庸武侠小说才有的名字,太赏心悦目了。000000df315…

成年人的数学公式

1 成年人的数学公式2 唯一对我说过“别走好吗”的人3 主人发起疯来有多可怕4 别人家的狗看到主人有危险▼你家的……▼5 蜘蛛捕食瞬间6 蜡烛重燃(冒的白烟是固态小颗粒的石蜡蒸汽,可燃)你点的每个赞,我都认真当成了喜欢

ubuntu运行python ide_在Ubuntu-16.04中安装Python可视化IDE——Spyder

Spyder是Python(x,y)的作者为它开发的一个简单的集成开发环境。和其他的Python开发环境相比,它最大的优点就是模仿MATLAB的“工作空间”的功能,可以很方便地观察和修改数组的值。Spyder的界面由许多窗格构成,用户可以根据自己的喜好调整它们的…

Linux查看系统信息的一些命令及查看已安装软件包的命令(转)

系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostname # 查看计算机名 # lspci -tv # 列出所有PCI设备 # lsusb -tv # 列出所…

日历签到 java_我的Android案例―签到日历

public class MainActivity extends Activity {//Log标签private static final String TAG "SIGN";//声明对象private Button sign;private TextView show;private GridView myDate;//获得本地时间Time nowTime new Time();//1个月内的天数private int dayMaxNum;p…

phpMailer 配置 企业邮局 163

phpMailer的两种配置,记录一下,差别在一个要写完整邮件地址,一个只要填前面的部分。一、自己的企业邮局发信$mail new PHPMailer();//$body file_get_contents("mail/".$date.".html"); //$bo…