Java奠基】实现面向对象编程方法

目录

标准的JavaBean类

设计对象并使用

对象封装

this关键字

构造方法


要知道对象是一个又一个能帮助我们解决问题的东西,但是这些东西并不是凭空出现的,需要我们根据设计图来进行制造,而这些一个一个的设计图就是一个一个的类。

标准的JavaBean类

1)类名需要见名知意

2)成员变量使用private修饰

3)提供至少两个构造方法(无参构造方法、带全部参数的构造方法)

4)成员方法(提供每一个成员变量对应的get和set方法,如果还有其他行为,也需要写上)

(设计图):是对象共同特征的描述;对象是真实存在的具体的东西。在Java中必须先设计类才能获得对象。

设计对象并使用

在Java中如何定义类呢?如下:

public class Phone {
    // 属性
    String brand;
    double price;
    
    // 行为
    public void call(){
        System.out.println("小米手机");
    }
    public void playGame(){
        System.out.println("打游戏");
    }
}

在Java中如何得到类的对象呢?如下:

类名 对象名 = new 类名();
Phone p = new Phone();

在Java中如何使用对象呢?如下:

访问属性:对象名.成员变量

访问行为:对象名.方法名(...)

代码如下:

注意

1)类名首字母建议大写,需要见名知意,驼峰模式。

2)一个Java文件中可以定义多个class类,且只能一个类是public修饰,而且public修饰的类名必须成为代码文件名,实际开发中建议一个文件定义一个class类。

3)成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值;一般无需指定初始化值,存在默认值。

对象封装

封装告诉我们,如何正确设计对象的属性和方法,对象代表什么就得封装对应的数据,并提供数据对应的行为

private关键字:是一个权限修饰符(私有),可以修饰成员变量和方法,被private修饰的成员只能在本类中才能访问。

public class Phone {
    // 属性
    private String brand;
    private double price;
    // 针对每一个私有化的成员变量,都要提供get和set方法
    // set方法:给成员变量赋值
    public void setBrand(String n){
        brand = n;
    }
    public void setPrice(double m){
        if(m >= 1000 && m<= 3000){
            price = m;
        }else{
            System.out.println("价格太高,我不允许!");
        }
    }
    // get方法:对外提供成员变量的值
    public String getBrand(){
        return brand;
    }
    public double getPrice(){
        return price;
    }
    // 行为
    public void call(){
        System.out.println("小米手机");
    }
    public void playGame(){
        System.out.println("打游戏");
    }
}

针对private修饰的成员变量,如果需要被其他类使用,应提供如上相应的操作,set方法用于给成员变量赋值,get方法用于获取成员变量的值:

public class PhoneTest {
    public static void main(String[] args) {
        Phone p = new Phone();
        p.setBrand("小米");
        p.setPrice(1999.98);
        // 获取手机对象中的值
        System.out.println(p.getBrand());
        System.out.println(p.getPrice());
        // 调用手机中的方法
        p.call();
        p.playGame();
    }
}

this关键字

当我们不使用this关键字时,代码的取值采取的是就近原则如下:

当我们采用this关键字时,访问的就是全局变量而不是局部变量了:

构造方法

构造方法也叫构造器,构造函数。作用:在创建对象的时候,由虚拟机自动调用,给成员变量进行初始化赋值。

构造方法的格式如下,其具体特点为:

1)方法名与类名相同,大小写一致

2)没有返回值类型,连void都没有

3)没有具体的返回值(不能由return带回结果数据)

构造方式

1)无参数构造方法:初始化的对象时,成员变量的数据均采用默认值

2)有参数构造方法:初始化对象的时候,同时可以为对象进行赋值

public class Student {
    修饰符 类名(参数){
        方法体;
    }
}

构造方法注意事项

构造方法定义

1)如果没有定义构造方法,系统将给出一个默认的无参数构造方法

2)如果定义了构造方法,系统将不再提供默认的构造方法

构造方法的重载

1)带参构造方法和无参构造方法,两者方法名相同但是参数不同,这叫做构造方法的重载

推荐使用方式

无论是否使用,都手动书写无参构造方法和带全部参数的构造方法

如果想快速生成构造方法,也可以借助快捷键(alt + insert)进行一键生成,如下:

当然也可以借助插件 PTG 1秒生成标准的JavaBean,如下右键一键成:

猜你喜欢

转载自blog.csdn.net/qq_53123067/article/details/130663195