java温故而知新之面向对象

2012年接触的java,期间学习了java SE,java EE,Android。学习内容杂乱且并不深入。所以,直至今日,java的水平还是挫挫的入门水平。故决定今天开始,更新java学习的系列博客:”java温故而知新“。希望借此系列博客,重新缕缕java的知识,也希望可以把自己所知道或者在学习过程中的心得体会分享给大家。该系列博客初步计划是一周更新一篇,同时同步更新“跟着鸟哥学习linux”。

java SE基础这部分,大致来说可以分成九大知识点:

1、面向对象(封装、继承、多态)

2、抽象类与接口

3、内部类

4、java的内存分配与管理

5、容器

6、泛型、

7、字符串与数组

8、java输入输出

9、线程

10、网络编程

java SE部分初步定为分这八大知识点来写。


OK,先来说说第一块知识:面向对象。

万物皆对象,这也是为什么java中所有类的父类是:Object。提到面向对象,首先肯定会想到面向对象的三大特性:封装,继承,多态。

在总结三大特性前,先说说java中是如何操纵对象的。

每种编程语言都有自己的操纵内存元素的方式。有时候,程序员必须注意将要处理的数据是什么类型。你是直接操纵元素,还是用某种基于特殊语法的间接表示(比如C和C++中的指针,以及下面要提到的java中的引用)。

在java中没有指针的概念,java用引用来操纵对象(reference)。引用和对象的关系可以形象的比喻成遥控器和电视机的关系。用遥控器来操纵电视机,这就好比用引用来操纵对象一般。那么没有电视机呢?遥控器依然可以存在。这就好像我定义了一个字符串的引用

String s ;

但我并不需要一定要让他指向一个对象。当然这样做并不提倡,因为很有可能它会报一个运行时错误。最好的做法便是在定义一个引用的时候,同时给他初始化,如下:

String s = “abcd”;

那么我换一种写法:String s = new String(“abcd”);

java中万物皆对象,字符串当然也是一种对象。于是,对于某一类具有相同属性和方法的对象,可以将其归纳为一类。在java中用class这个关键词来定义。要创建一个对象怎么办?new一个。new后面的是什么?构造方法。

对于每一个类,java会默认为你生成一个默认的构造方法,这个构造方法是无参的。但是要注意的一点是:当你自己定义了一个构造器之后,编译器便不会再帮助你生成默认构造器了。看下面一个例子:

public class People{

People(String name){};

}

这个时候,如果你还写成new People,那么编译器只好报错了。

一、封装

怎么理解封装?尽可能隐藏对象内部细节,对外只保留有限的接口方法与外界进行交互。封装的原则就是使对象以外的部分不能随意的访问和操作对象内部的属性。从而避免外界对对象内部属性的破坏。那说道隐藏属性,控制访问权限,就要说一说包访问权限控制的问题。java中四种访问权限控制关键词,根据权限大小依次为:private,default,protected,public。



二、继承

先看看定义:子类的对象拥有父类的全部属性和方法,称为子类对父类的继承。关键词:extends。但是要注意的一点是,java不支持多继承,也就是说,一个父类可以有多个子类,但是一个子类只能继承一个父类。同时,上图中也可以很清楚看到,子类不能继承父类中权限为private的成员变量。但是可以通过调用super这个关键词来调用父类的成员变量和方法


三、多态

一提到多态,脑子里就会冒出一句话:父类引用指向子类对象。看了网上很多定义,还是觉得这句来的实在。虽然它并不好理解,但这不重要,不用理解,会用就好。java的多态性表现在两个方面:方法的重载和重写。也可以说是编译时多态(静态多态性---方法重载)和运行是多态(动态性多态---方法重写)。OK ,这里只是提下概念,记住重载和重写便好了。静态和动态什么的,太高端。

重载:一个类中可以有多个方法名相同但参数和返回值类型不同的方法。根据传入的参数来确定具体调用哪一个方法

重写:子类对父类的方法进行重写。当然该重写的方法的方法名,参数,返回值必须和父类保持一致。要注意的一点是:子类函数的访问权限不能低于父类。经常我们还会在重写的方法中看到super来调用父类的方法。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值