java面向对象笔记

javaOOP笔记
第一章:对象和封装
1.面向对象设计的步骤
找名词-->>抽象类和属性
找动词-->>方法
主要关注对程序有用的属性
2.常量和构造函数
final:定义常量
构造函数:与类名重名,没有返回类型
注意:
C#普通方法不能和类名相同
java里普通方法可以和类名相同。
可以用this关键字调用本类的构造函数,
但是必须出现在方法的第一行。
3.static
1.java里面可以通过对象访问static成员,也可以通过类直接访问,C#只能通过类访问static成员。
2.static只能作用与成员变量,不能再方法内部定义。
3.static不能用this调用
4.静态方法不能调用非静态方法,普通方法可以调用静态成员。
5.封装
public:公共的,各个类可用
protected:包内和子类可用
默认:同一包内可用
private:本类可用
第二章:继承的语法
1:继承语法
访问修饰符 SubClass extends SuperClass(){}
2.子类能继承public,protered,默认(同一个包)
子类不能继承private,默认(不在同一个包),构造函数
3.重写:有继承才有重写
方法名一样;
参数必须相同
返回值类型相同或者是父类返回类型的子类
访问修饰符权限只能放大不能缩小
4.abstract和final
abstract修饰类表示抽象类,不能实例化
abstract修饰方法表示抽象方法,非抽象子类必须重写
final修饰类表示不能被继承
final修饰方法表示该方法不能被子类重写
final修饰属性表示常量
第三章:多态
实现多态的条件:
继承多态+重写
多态的运用:
1.父类引用指向子类对象
2.父类类型作为参数
(1)作为方法形参
(2)作为返回值类型
C#里氏替换原则 == java向上转型
向下转型:instanceof == is(c#);
第四章:接口
1.如何定义接口
public interface 接口名();
2.如何实现接口
public class 子类 extends 父类 implements 接口1,接口2....
3.什么是接口
接口表示能力,接口表示规范。
4.接口的特点
(1)接口要满足has - a 的关系.
(2)接口是面向对象最抽象的概念,只能有抽象方法,
不能有构造方法,不能是实例化,要实例化其实现类。
(3)接口中的变量只能是public,static final的静态常量
(4)接口中的方法只能是public abstract的抽象方法
(5)接口可以继承多个接口,类可以实现多个接口。
(6)接口中的方法必须咋非抽象实现类实现
第5章:异常和日志
1.异常:try-catch-finally-thorws-throw
注意:(1)异常执行的顺序
(2)多重catch存在的意义,写多重catch要注意顺序,
子类要写在异常前面
(3)throws和throw:
throws声明异常;
throw抛出异常.
(4)所有异常的父类是Exception,有两种异常;
检查异常,运行时异常
2.log4j的使用
1.引入log4j.jar;
2.创建配置文件:log4j.properties;
3.编写配置
4.使用
配置:
级别:fatal>error>warn>info>debug(调试)
目的地:文件,控制台
输出合适;%d %l(位置) %F() %m%n()
第六章:集合接口
1.接口:
Collection(接口)有两个子接口:List,Set
Map(接口没有子接口)
Collection接口没有任何实现类:
List接口常用的有LinkeList和ArrayList;
LinkedList是链表结构,频繁插入或删除的时候使用
ArrayList在频繁查询的时候使用
Set接口存储无序,唯一的元素,List接口存储有序不唯一的元素
Map存储键值对,其中键的集合类型是Set类型,值得集合是Collection
遍历:
增强for:
Iterator:
Set keys = map.keySet();
Iterator it = keys.iterator();
while(it.hasNext()){
key = it.next();
}
第七章:多线程
1.线程和进程
操作系统管理很多进程,一个进程由很多线程;
2.使用线程的步骤
定义线程(编写类)--->创建线程(new)--->启动线程(start)
3.定义线程的两种方式
(1)extends Thread;
(2)implements Runnable;
4.线程的调度
sleep();睡眠,不会主释放cpu(静态方法)
join();强制运行指定线程;(实例方法)
getName();拿到线程名字
setPriority()设置优先级,只是概率概念,不是确定的
yeild();礼让,会释放一下资源,但是还会去抢
wait();会释放资源
5.线程的同步(锁):synchronized
(1)锁方法
(2)锁代码块
6.线程安全的类:Hashtable , StringBuffer

猜你喜欢

转载自www.cnblogs.com/whyshi1995/p/9085095.html