面对对象编程基础
1、面对对象编程基础
类是同一类事物的统称,如果将现实世界中的一个事物抽象成对象,类就是这类对象的统称。类就是对象的设计图。
对象:抽象概念,表示任意存在的事物。
1.1 特征
1. 封装性
2. 继承性
3. 多态性:将父类对象应用于子类的特征就是多态。
类的定义:
class 类名称{
//类的成员变量(属性)
//类的成员方法
}
1.2 成员变量
成员变量就是Java中类的属性。
1.3 成员方法:类的行为
下达指令,返回结果。
[权限修饰符][返回值类型】 方法名([参数类型 参数名])[throws 异常类型]{
…. //方法体
return 返回值;
}
- 返回值:凡是可以用来创建对象的类型,都可以被返回。return会强制中断方法。
- 权限修饰符:private/public/protected
- 参数:可有有多个,不限类型;每一个参数都必须声明数据类型;调用方法注意参数的顺序。参数的传递有三种形式:值参数;引用参数;不定长参数(int…x)。
public class Book { // 创建书类
public static void main(String[] args) {
Book book = new Book(); // 创建书类对象
int shelf = 30; // 初始化书架上书的本数(实参)
int box = 40; // 初始化箱子里书的本数(实参)
// 把书架上的书全部放进箱子后,输出箱子里书的总数
System.out.println("把书架上的书全部放进箱子后,箱子里一共有"
+ book.add(shelf, box) + "本书。\n明细如下:书架上"
+ shelf + "本书,箱子里原有" + box + "本书。");
}
private int add(int shelf, int box) { // 把书架上、箱子里的书相加求和(形参)
box = box + shelf; // 对box进行加shelf操作
return box; // 返回box
}
}
1.4 构造方法
构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。构造方法的特点如下:
- 构造方法没有返回值,也不能定义为void.
- 构造方法名与类名相同。
- 构造方法主要用于完成对象的初始化工作,它能把定义对象的参数传递给对象成员。
class Book{
public Book(int args){ //可以设置有参数构造函数
//对成员变量进行初始化
}
}
1.5 局部变量
局部变量在方法执行时被创建,在方法执行结束时被撤销。局部变量在使用时必须进行赋值操作或者初始化,否则会出现编译错误。
局部变量在使用时,应该注意:
局部变量的作用域:从声明到结束。
在相互不嵌套的作用域中可以同时声明两个名称和类型相同的局部变量。
在同一区域中不可以定义相同名称和类型的局部变量。
1.6 对象
使用new操作符调用构造方法就可以创建一个对象。
Test test = new Test();
Test test = new Test("a");
对象的使用
对象的销毁
Java有一套完整的垃圾回收机制。有两种常见的对象消亡方式:- 对象e超过其作用范围,将消亡。
- 当对象被置null值时,将消亡。
垃圾回收时首先调用:finalize()方法。
强制启动垃圾回收器:System.gc();
1.7 this关键字
this代表类本身的对象。
- 当类中的成员变量与成员方法中的参数重名时,采用this指针来进行区分。
public class Book2{
String name = "abc";
public void showName(String name){
//this.name = name;
System.out.printIn(name);
}
public static void main(String[] args){
Book2 book = new Book2();
book.showName("123");
}
}
- this关键字除了可以调用成员变量或成员方法之外,还可以作为方法的返回值。还可以调用类的构造函数
public class Bird {
String name;
public Bird(){
this("企鹅"); //调用下方的构造函数,无参数构造函数调用有参数构造函数
}
public Bird(String name) {
this.name = name;
}
}
2、static关键字
由static修饰的变量、常量和方法分别被称为静态常量、静态变量和静态方法,也被称为类的静态成员。
2.1 静态变量
Java程序中,把共享的变量用static修饰,该变量就是静态变量。
调用静态变量语法:
类名.静态类成员;
2.2 静态方法
如果想要使用类中的成员方法,需要先将这个类进行实例化,但有些时候不想或者无法创建类的对象时,还要调用类中的方法才能够完成业务逻辑,这种情况下就使用静态方法。
调用静态方法语法:
类名.静态方法();
2.3 静态代码块
在类的成员方法之外,用static修饰代码区域可以称之为静态代码块。定义一块静态代码块,可以完成类的初始化操作,在类声明时就会运行(静态代码块由始至终只运行一次)。
- 非静态代码块,每次创建对象的时候,会在构造方法之前运行。然后再初始化对象,运行构造方法。
- 静态代码块只有在第一次声明类时调用,之后不会调用。
public class StaticTest{
static{
//此处编辑执行语言
}
}
3 、类的主方法
主方法是类的入口点,它指定了程序从何处开始,提供对程序流向的控制。Java编译器通过主方法来执行程序。其是静态的、无返回值、参数是数组。语法如下:
public static void main(String[] args){
//方法体
}
Note:args[0]~args[n]分别代表程序的第一个参数到第n+1个参数,可以使用args.length获取参数的个数。
- Eclipse中设置程序参数