1、面向对象三条主线
Java类及类的成员
字段、方法、构造器、代码块。内部类
面向对象的三大特征
封装、继承、多态
其它关键字
this、package、import、super、static、final、interface
2、面向过程与面向对象
面向过程(POP)
面向过程,强调的是功能行为,以函数为最小单位,考虑怎么做
面相对象(OOP)
面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做
类(Class)和对象(Object)是面向对象的核心概念
类是对一类事物的描述,是抽象的、概念上的定义
对象是实际存在的该类事物的每个个体,因而也称为实例(instance)
面向对象程序设计的重点是类的设计
类的设计,其实就是类的成员的设计
3、类
语法格式
修饰符 class 类名 {
类的成员
}
自定义类的步骤
定义类(考虑修饰符、类名)
编写类的属性(考虑修饰符、属性类型、属性名、初始化值)
编写类的方法(考虑修饰符、返回值类型、方法名、形参等)
类的访问机制
一个类中:类中的方法可以直接访问类中的成员变量
不同类中:先创建要访问类的对象,再用对象访问类中定义的成员
4、对象
如何使用Java类
java类的实例化,即创建类的对象
创建语法
类名 对象名 = new 类名()
使用
“对象名.对象成员”的方式访问对象成员(包括属性和方法)
匿名对象
不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象
new Person().shout();
使用情况
如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象
将匿名对象作为实参传递给一个方法调用
5、类的成员之一:属性(field)
语法格式
修饰符 数据类型 属性名 = 初始化值
初始化值:对象的属性有默认值
byte、short、int:0
long:0L
float:0.0f
double:0.0
char:0或\u0000
boolean:false
引用类型:null
6、类的成员之二:方法(method)
方法概述
方法是类或对象行为特征的抽象,用来完成某个功能操作
将功能封装为方法的目的是,可以实现代码重用,简化代码
Java里的方法不能独立存在,所有的方法必须定义在类里
方法声明格式
修饰符 返回值类型 方法名(参数类型 形参1, 参数类型 形参2, ….){
方法体程序代码
return 返回值;
}
注
方法通过方法名被调用,且只有被调用才会执行
方法被调用一次,就会执行一次
没有具体返回值的情况,返回值类型用关键字void表示,那么方法体中可以不必使用return语句。如果使用,仅用来结束方法
定义方法时,方法的结果应该返回给调用者,交由调用者处理
方法中只能调用方法或属性,不可以在方法内部定义方法
7、方法的重载(overload)
定义
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可
特点
与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类型)。调用时,根据方法参数列表的不同来区别
8、可变个数形参
JavaSE 5.0 中提供了Varargs(variable number of arguments)机制,允许直接定义能和多个实参相匹配的形参
JDK 5.0以前:采用数组形参来定义方法,传入多个同一类型变量
public static void test(int a ,String[] books);
JDK5.0:采用可变个数形参来定义方法,传入多个同一类型变量
public static void test(int a ,String…books);
注
声明格式:方法名(参数的类型名 ...参数名)
可变参数:方法参数部分指定类型的参数个数是可变多个:0个,1个或多个
可变个数形参的方法与同名的方法之间,彼此构成重载
可变参数方法的使用与方法参数部分使用数组是一致的
方法的参数部分有可变形参,需要放在形参声明的最后
在一个方法的形参位置,最多只能声明一个可变个数形参
9、方法的参数传递机制
形参:方法声明时的参数
实参:方法调用时实际传给形参的参数值
Java的实参值如何传入
Java里方法的参数传递方式只有一种:值传递。 即将实际参数值的副本(复制品)传入方法内,而参数本身不受影响
形参是基本数据类型:将实参基本数据类型变量的“数据值”传递给形参
形参是引用数据类型:将实参引用数据类型变量的“地址值”传递给形参
10、面向对象特征之一:封装
封装概述
程序设计追求“高内聚,低耦合”
高内聚 :类的内部数据操作细节自己完成,不允许外部干涉
低耦合 :仅对外暴露少量的方法用于使用
封装就是隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想封装使用
合理隐藏、合理暴露
封装实现
Java中通过将数据声明为私有的(private),再提供公共(public)方法:getXxx()和setXxx()实现对该属性的操作
11、四种权限修饰符
private
类内部
缺省
类内部、同一个包
protected
类内部、同一个包、不同包的子类
public
类内部、同一个包、不同包的子类、同一个工程
注
对于class的权限修饰只可以用public和default(缺省)
12、类的成员之三:构造器(构造方法)
特征
它具有与类相同的名称
它不声明返回值类型。(与声明为void不同)
不能被static、final、synchronized、abstract、native修饰,不能有return语句返回值
作用
创建对象;给对象进行初始化
语法格式
修饰符 类名 (参数列表) {
初始化语句;
}
分类:根据参数不同
隐式无参构造器(系统默认提供)
显式定义一个或多个构造器(无参、有参)
注
Java语言中,每个类都至少有一个构造器
默认构造器的修饰符与所属类的修饰符一致
一旦显式定义了构造器,则系统不再提供默认构造器
一个类可以创建多个重载的构造器
父类的构造器不可被子类继承
13、JavaBean
定义:JavaBean是一种Java语言写成的可重用组件。即一种符合标准的Java类
标准
类是公共的
有一个无参的公共的构造器
有属性,且有对应的get、set方法
14、关键字:this
15、关键字:package、import
16、MVC设计模式
点击查看代码
点击查看代码
点击查看代码
点击查看代码
点击查看代码
点击查看代码
点击查看代码
点击查看代码
点击查看代码
点击查看代码
点击查看代码
点击查看代码
点击查看代码
点击查看代码
点击查看代码
补充
局部变量与成员变量区别
方法使用方式
属性赋值过程
默认初始化
显式初始化
构造器中初始化
通过对象.属性/对象.方法进行初始化