重点知识:
1.类的定义
2.对象的创建和引用
3.this关键字
4.垃圾回收机制
一、面向对象的概念
1.抽象:
从事务中舍弃个别的非本质特征,抽取共同的本质特性;只考虑与问题域相关的信息,而忽略与问题域不相关的部分
2.对象:是系统中用来描述客观事实的一个实体,万物皆对象
①可以是无形的,也可以是有形的
②对象是构成世界的一个独立单位
③具有自己的静态结构(属性)和动态行为(方法)
④每个对象有自己的唯一标识
3.类:类是一组具有相同属性和行为的对象的抽象,类的作用是用来创建对象,对象是类的实例
①类和对象的关系:每一个类在某一个时刻都有零个或更多实例,类是生成对象的模板
②抽象和具体的关系:一个类定义了使用哪些数据来描述属性,每一个对象都有相应的属性值数据,一个类通过一系列方法来定义行 为,这些方法能在每个对象中被激活
二、对象的创建和使用
1.语法格式:类名 对象名=new 构造器 例:Employee e=new Employee()
2.构造器
①具有与类相同的名称
②不含返回值类型
③不能在方法中用return语句返回一个值
3.构造器作用
①完成对象的创建,即完成对象的实例化
②一般使用构造器来完成对成员变量的初始化
4.匿名对象
①创建完对象,在调用该对象的方法时,也可以不定义对象的句柄,而直接调用这个对象的方法
②如果对一个对象只需进行一次方法调用时使用匿名对象
三、变量的作用域
1.类变量:用static修饰的成员变量,他们在类被载入时创建,只要类存在,static变量就存在
2.实例变量:类体中声明的成员变量,即非static的属性
3.局部变量:方法体中声明的变量,方法中的参数或代码块中声明的变量;局部变量只在方法调用的过程中有效,方法调用结束后失效
四、this关键字
1.代表对象自身的引用
①一个引用
②指向调用该方法的当前对象
③通常在类的方法中定义中使用
2.用this关键字的情况
①方法中的变量与成员变量重名
②在一个构造其中,调用其他重载的构造器
③返回当前对象的引用
五、垃圾回收机制
1.java的垃圾回收机制是自动的,是保证程序健壮的主要手段,避免了由于程序员忘记回收内存而引起的内存泄漏,同时也避免了回收内存带来的代码繁琐
2.垃圾回收机制实际上是JVM内部运行的一个优先级比较低的后台程序,这种对多线程的模式使得java具有更好的性能,完全不用程序员参与
3.垃圾回收机制仅仅作用于栈内存,与堆内存无关
六、面向对象的特征
1.继承(inheritance)
①也称泛化,继承性是子类自动共享父类属性和方法的机制,在定义和实现一个类时,可以在一个已经存在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的 内容,并加入自己若干新的内容
②继承简化了人们对事物的认识和描述,有益于软件复用,是提高软件开发效率的重要原因之一
③是类之间的一种关系,一半类与特殊类之间的关系
④在Java中定义一个类时,让该类通过关键字extends继承一个已经有的类
⑤被继承的类称为父类(超类、基类)新的类称为子类(派生类)
⑥子类继承父类的所有属性和方法,同时也可以增加自己的属性和方法
⑦Java中只能单继承,也就是说每个类只能有一个直接父类,一个父类可有多个子类
1.1继承实例化的过程
①子类实例化时先父类后子类
②调用构造器时先调用父类的构造器,后调用子类构造器
③在子类中创建构造器:必须先调用父类的构造器;子类可以在自己的构造器中使用super关键字来调用父类的构造器
④如调用的是父类中无参的构造器,则可以不写super()
1.2super和this关键字
①super()
作用:调用父类的构造器;
只能出现在子类的构造器中,且必须是第一行;
super()中的参数,决定了调用父类中的哪个构造器;
如果子类构造器中没有出现super,那么构造器会默认加上super(),即调用父类的空构造器,如果父类没有空构造器,编译器提示错误
②this()
作用:调用本类的构造器
只能写在构造器的第一行
注:在同一个构造器中super()和this()不能同时出现
2.多态(同一个事物有不同的形态)
①指同一个命名可具有不同的语义
②在方法中,常指在一般类中定义的属性或方法被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为,对于子类,可用不同的方法代替实现父类的服务的方法
③多态存在的三个必要条件:要有继承或实现,要有重写,父类引用指向子类对象
一旦满足以上3个条件,当调用父类中被重写的方法后,运行时创建的是哪个子类的对象,就调用该子类中重写的那个方法
④在执行期间(而非便宜期间)判断所引用对象的实际类型,根据其实际类型调用相应的方法
⑤多态的优点:简化代码;改善代码的组织性和可读性;易于扩展
3.封装
①良好的封装能减少耦合
②类内部的结构可以自由修改
③可以对成员进行更精确的控制
④隐藏信息实现细节
对封装解释到位的博客:http://blog.csdn.net/chenssy/article/details/12757911
七、Java包的概念
1.Java包的概念及应用
在Java中,包允许将类组合成较小的单元;you'zu有助于避免命名冲突;包允许在更广的范围内保护类、数据和方法
注:包可以是类、接口和子包的集合。每个源文件只能声明一个包
2.Java类库中常用的包
Java.lang:Java语言包,任何程序中,该包都被自动导入
Java.awt: 图形用户界面包
Java.swing:跨平台轻量级组件包
Java.sql:数据库访问包
Java.io:这个包又对您的输入/输出操作有用的类组成
Java.util:该包提供了许多创建如:lists、calendar、date等所需要的类和接口
Java.net:该包提供了许多进行TCP/IP网络编程的类和接口
3.import导入包中的类
①包名.路径名
②使用import关键字引入其他包中的类
③位于同一包中的类可以直接访问
导入包中的所有类:import 包名*;
导入子包中所有的类:import 包名.子包名.*;
导入包中的某个类:import 包名.子包名.类名;
八、访问权限控制符
1.用来控制类的成员和类的使用范围
2.类成员的访问权限修饰符:private、default、protected、public
3.类的访问权限修饰符:public、 default