面向对象三大特征:封装、继承、多态。这里就说一下封装,继承和多态后面会详细介绍。
其实封装思想并不只存在于我们的编程中,在日常生活中,我们习以为常的很多事物都体现着封装思想。例如:
以上都是封装思想在生活中的提现,在编程中,封装也存在以下优点:
接下来看一下封装思想在代码中的提现。
方法,又称函数,是代码的集合。
方法的使用主要分为方法的定义和方法的调用。一个定义好的方法在调用之前是不会执行的。
方法的定义又称为封装的方法
语法:
访问权限修饰符 修饰符 返回值类型 方法名(形参列表){
方法体
return 返回值;
}
例如:
public static void test(){
System.out.println("test")
}
定义了一个名为test的方法,这个方法没有形参,没有返回值。
public static void test2(int num){
System.out.println(num);
}
定义了一个名为test2的方法,调用该方法需要给这个方法传值
public static boolean test3(){
System.out.println("test3")
return true;
}
定义了一个名为test3的方法,方法执行结束后会返回true。
方法在定义好之后并没有被执行,只要在调用之后才会执行。
语法:
方法名(实参列表);
数据类型 变量名 = 方法名(实参列表);
方法的重载关系,就是在同一个类中,方法名相同,形参列表不同的两个方法。
例如:
public class Funciton {
public static void main(String[] args) {
print();
print("有参");
}
public static void print() {
System.out.println("无参方法");
}
public static void print(String str) {
System.out.println(str);
}
}
由于我们两个方法的方法名虽然相同,但是由于我们在调用方法时传入的参数不同,所以计算机可以知道我们要调用的是哪个方法。
其实方法的重复调用很简单,就是方法中调用方法,如:
public class Funciton {
public static void main(String[] args) {
}
public static void A(){
B();
}
public static void B(){
C();
}
public static void C(){
}
}
递归其实就是特殊的调用,在某个方法中调用它自己。例如:
public class Funciton {
public static void main(String[] args) {
}
public static void A(){
A();
}
}
或者采用间接的方式调用方式形成递归:
public class Funciton {
public static void main(String[] args) {
}
public static void A(){
B();
}
public static void B(){
C();
}
public static void C(){
A();
}
}
递归很容易形成死循环,所以我们在实际开发中应当尽量避免这种情况,特殊情况除外,如:遍历目录及其子目录和文件。