一、面向对象的基本概念
面向对象程序设计也叫oop,面向对象就是把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。
1.类的定义
类的定义包括两部分的类容:类声明和类体。语法就像这样:
[类的修饰符]class类名[extends父类][implements接口名]//类的声名
{
成员变量声明
成员方法声明
}
如定义员工类:
class Employee{//类头
//类体
}
2.成员变量
成员变量分两种:类的成员变量和对象的成员变量(又叫实例变量)
成员变量的定义格式一般为:
[成员说明修饰符]变量类型 成员变量名
可以为员工类(Employee类)添加成员变量:
class Employee{
String name;
String ID;
String position;
double salary;
int year;
int month;
int day;
…
}
3.成员方法
成员方法是一个包含一条或多条语句的代码块,用来完成一个具体的、相对独立的功能。
方法的声明
方法包含方法头和方法体两部分,方法声明的格式为:
[成员说明修饰符][方法返回类型] 方法名([形参列表])//方法头
{
方法中的语句 //方法体
}
1)方法的调用
使用方法实现特定功能称为方法的调用。调用方法只写方法名称和要处理的数据(称为实参)。方法一旦定义,则可根据需要反复调用。
方法调用的一般格式:
方法名(实参列表)
其中实参列表是使用逗号隔开的要处理的数据。如果方法无返回值(void),方法调用可作为一条语句单独出现在程序中。
例如,调用上述定义的方法求4和8较大值可写成如下形式:
Max(4,8);
2)方法的参数
方法定义时形参列表简称形参。形参通常是方法运行所需的数据,通常在调用方法时才传递它的数据。举个例子:
int a = 6;
long b,c;
b = factor(5);//实参时变量
c = factor(a + 3);//实参是表达式
调用方法时将实参的值传递给形参有两种方式:按值传递和按引用传递。
当方法的参数为简单数据类型时,则将实参的值传递给形参。这种传递不因为调用方法中对形参值的改变而改变实参的值。
举例:
public class changeNumber{
public static void main(String[ ] arge){
int a = 3,b = 5;
System.out.println("调用方法前:a = "+ a +",b="+ b);
exchange(a,b);
System.out.println("调用方法后:a = "+ a +",b="+ b);
}
public static void exchange(int x,int y){
int z;
z = x;
x = y;
y = z;
}
}
3)构造方法
构造方法有叫构造器,是类中的一个特殊的方法。构造方法的名字和类的名字相同,当创建对象时,构造方法被启动,它给对象的实例字段赋初始值。定义构造方法的语法格式如下:
[修饰符] 构造方法名([形参列表]){
//由零条或多条可执行语句组成的执行体
}
4)设置器和访问器
Alt+Insert//快捷产生访问器和设置器
访问器的特点:
1.方法声明部分由返回值类型
2.方法声明没有参数
3.方法体内有返回语句
设置器的特点:
1.方法返回类型为void,既不返回类型
2.方法声明中至少有一个参数
3.方法体内肯定有赋值语句
5)变量的作用域
变量的作用域是指程序中可以访问该变量的一段代码。声明变量的同时也就指明了变量的作用域
6)方法重载
在Java中,同一个类中的两个或多个方法可以具有同一个名称,只要它们的参数类型或参数数量不同即可。当这种情况发生时,就称为方法重载。方法重载时Java实现多态性的方法之一。
二、对象的声明
对象的声明格式如下:
类名 对象名;
使用前面创建的员工类来创建对象为:
Employee e1;
上述语句声明了Employee类的对象e1
声明完对象后,内存中还不存在对象的实体,只是对象的引用,且目前引用为空(初始值为null)
2.对象的初始化
声明要创建一个对象的实际物理拷贝,并把对于该对象的引用赋给该变量。这就是通过使用new运算符实现的
格式如下:
对象名 = new 类名(参数);
3.引用对象
在创建了类的对象后,就可以对对象的各个成员进行访问,进行各种处理。访问对象成员的一般形式为:
对象名.成员变量名
对象名.成员方法名(参数列表)//方法名带圆括号
4.销毁对象
Java需要程序员用new运算符创建所需的对象,而不需要显式的销毁它们。Java的垃圾回收机制自动判断对象是否在使用,并能够自动销毁不再使用的对象,收回对象所占的资源
5.对象的复制
同一个类可以声明多个对象,多个对象之间可以相互复制
三、包的概念
包是一组相关的类和接口的集合,Java的每个类都包含在相应的某个包中
1.包的定义
创建一个包通过关键字package声明。package语句的一般格式为:
package <包名>
其中,package是关键字,<包名>是标识符
2.包的使用
可以通过import语句导入这些类,从而使用包中的这些类
import语句的使用分为两种情况:1.导入某个包中的某个类;2.导入某个包中全部类。这两种情况分别用如下形式的import语句:
import java。util.Date;//导入包java.util中的Date类
import java。util.*;//导入包java.util中的全部类,不包含其子包
3.创建包等级
用圆点”.“将每个包名分隔就能形成包等级。格式如下:
package<包1名>[.<包2名>[.<包3名>]];
4.类的封装
将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来对隐藏的信息进行操作和访问
5.访问权限修饰符
Java为对象变量提供了4中访问权限:private(私有的)、default(不加任何访问修饰符表示包访问权限)、protected(受保护的)和public(公有的)。访问权限修饰符可以修饰类和类中的属性和方法
6.访问权限修饰符修饰类
能修饰类的访问权限修饰符只有public和default。
7.this关键字
this的使用场合有以下三种:
(1)用来访问当前对象的数据成员
this.数据成员
(2)用来访问当前对象的成员方法
this.成员方法(参数)
(3)当有重载的构造方法时,用来引用同类的其他构造方法
this.(参数)
this对象是Java语言实现封装的一种机制,它将对象和用于操作这些对象的方法连接在一起