面向对象(OOP)
面向对象编程语言拥有如下几个重要的基本特性:
- 万物皆为对象(任何事物都可以表示为程序中的对象)
- 每个对象都拥有其类型(类[class],在这里
类
就是类型
的同义词)面向对象的3大基本特点:
封装(Encapsulation)
封装是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节;
继承(extends)
继承是使用已存在的类的定义作为基础建立新类的技术. 新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类;通过使用继承,我们能非常方便的复用代码,但是值得注意的是:继承会提高代码耦合度;
多态(Polymorphism)
多态是同一个行为具有多个不同表现形式或形态的能力;多态就是同一个接口,使用不同的实例而执行不同操作;例如:
Animal animal_cat = new Cat(); Animal animal_dog = new Dog(); // --- 同一个接口(Animal) // --- 不同实例 new Cat(),new Dog()
这里涉及到方法的重写,戳这里进行了解;
重写与重载
重写(Override)
重写是子类对父类的允许访问的方法的实现过程进行重写编写,且返回值和形参都不能改变. 子类只在需要时重写父类方法;
重载(Overload)
重载是在一个类中,方法名相同,而参数不同,返回类型可以相同,也可以不相同(最常用在构造器的重载);被重载的方法必须改变参数列表(参数个数或类型或顺序不一样);
构造方法
每个类都有构造方法,如果没有为类定义构造方法的话,Java编译器将会为该类提供一个默认构造方法;在创建对象时,至少调用一个构造方法;构造方法必须与类重名,例如:
public class Test{ // --- 编译器默认提供的构造方法; public Test(){ } // --- 自己重载写的构造方法; public Test(String name){ } }
作用:创建对象时调用构造方法,为对象执行初始化;
异常处理机制
抛出异常
在方法内抛出异常:
throw new Exception();
在方法上抛出(声明)异常,可同时抛出多个:
public void test() throws Exception{}
捕获异常
关键字:try – catch – finally
try{ // --- 可能出现异常的代码 }catch(Exception e){ e.printStackTrace(); // --- 捕获异常后执行的代码,无异常则不执行 }finally{ // --- 无论是否发生异常都会执行的代码 }
注意:当
try
,catch
代码块中有return
语句时,finally
中的代码块仍然执行(也就是finally
中的代码块要先于try
,catch
的return
语句执行),参考戳这里;
多线程
作用:充分利用CPU资源;
如何创建一个线程?(三种方式)
实现
Runnable
接口
// --- 实现Runnable接口来创建一个线程 public class ThreadTwo implements Runnable{ // --- 重写run方法 public void run(){ System.out.println("线程2正在运行..."); } // --- start方法 public void start(){ System.out.println("线程2准备就绪, 获取到CPU资源即可执行run方法"); } } public class Test(){ public static void main(String args[]){ ThreadTwo t = new ThreadTwo(); t.start(); } }
继承
Thread
类
// --- 继承Thread类来创建一个线程 public class ThreadTwo extends Thread{ // --- 重写run方法 public void run(){ System.out.println("线程2正在运行..."); } // --- start方法 public void start(){ System.out.println("线程2准备就绪, 获取到CPU资源即可执行run方法"); } } public class Test{ public static void main(String arg[]){ ThreadTwo t = new ThreadTwo(); t.start(); } }
通过
Callable
和Future
创建线程
没用过,不敢误人子弟详情可以参考,这里;
集合框架
Collection:
Map: