JAVA面向对象之封装
- 封装的定义
- 封装是面向对象的三大特征之一,是为了避免出现不合理的值,而对成员变量的访问做出一些限制,不允许外界随意访问。
- 如何实现封装
2.1 Java一些关键字的访问范围
2.2 在定义一个类的时候,将类中的属性私有化,即使用private关键字进行修饰,如果外界想要访问,需要调用指定的方法
class student {
private String name;
private int age;
//getName方法是获取name
public String getName() {
return name;
}
//setName是设置name
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
-
方法的重载和递归
3.1方法的重载-
重载的定义:如果同一个类中包含了两个或两个以上方法名相同,方法参数的个数、顺序或者类型不同的方法,则成为方法的重载
-
重载通过传入的不同参数决定调用那个重载的方法,需要注意的是,方法的重载和返回值无关,它只需要满足俩个让条件,一是方法名相同,二是参数个数或者参数类型不同或者参数的顺序不一样
-
class Test01 {
public static int add(int x, int y) {
return x + y;
}
public static double add(double x, double y) {
return x + y;
}
public static double add(int x, double y) {
return x + y;
}
public static void main(String[] args) {
System.out.println(add(1, 2));//3
System.out.println(add(1.2, 2.3));//3,5
System.out.println(add(1, 2.2));//3.2
}
}
3.2 方法的递 归
- 递归就是在一个方法内部调用方法的本身,递归必须要有结束的条件,否则会陷入无限递归的状态,永远无法结束递归的钱调用
class Test02 {
//使用递归求1-n的和
public static int sum(int n) {
if (n == 1) {
//满足条件结束递归
return 1;
}
return n + sum(n - 1);
}
public static void main(String[] args) {
System.out.println(sum(9));//45
}
}
- 构造方法
4.1构造方法是类的一个特殊成员,会在类实例化对象的时候被自动调用
class Test03{
/**
* 定义构造方法时的注意点
* 1、方法名与类名相同
* 2、没有任何返回值
* 3、方法中不可以使用return来返回一个值,但是可以单独使用return来结束方法
* 语法格式
* [修饰符] 方法名 ([参数列表]){
* //方法体
* }
* }
*/
public Test03(){
System.out.println("Test03的无参构造方法生成");
}
}
- 有参构造方法的使用
class Test04{
String name;
int age;
public Test04(String n,int a){
name = n;
age = a;
}
public void print(){
System.out.println("我叫:"+name+",我今年"+age+"岁了。");
}
public static void main(String[] args) {
Test04 test04 = new Test04("张三",20);
test04.print();//我叫:张三,我今年20岁了。
}
}
- 关键字
5.1this关键字:this关键字代表了所属函数的调用者对象,如果存在同名成员变量与局部变量时,在方法内部默认是访问局部变量的数据,可以通过this关键字指定访问成员变量的数据
5.2static关键字:static是一个修饰符,用于修饰成员(成员变量,成员函数),static修饰的成员变量 称之为静态变量或类变量。static修饰的成员被所有的对象共享。static优先于对象存在,因为static的成员随着类的加载就已经存在。static修饰的成员多了一种调用方式,可以直接被类名所调用(类名.静态成员)。static修饰的数据是共享数据,对象中的存储的是特有的数据。