Java学习——面向对象的三大特征(封装)

18 篇文章 0 订阅

封装

封装:封装就是如何正确实际对象的属性和方法

封装的原则:对象代表什么,就得封装相应的数据,并提供数据相应的行为

简单理解封装思想:找对象,调方法

private关键字

        private是一种权限修饰符,可以修饰成员方法和成员变量。

        特点:被private修饰的成员只能在本类中被访问

        被private修饰的成员变量,如果要被其他类使用,就需要提供相应的getter,Setter方法       

         setXxx()方法用于给变量赋值,getXxx()方法用于获取成员变量的值,均用public修饰

注意:当成员变量和局部变量重名时,会触发就近原则,如果要使用成员变量,则需要使用this关键字来修饰;

public class Worker {
    //成员变量
    private String name;
    private int year;


    //构造方法
    public Worker(){}
    public Worker(String name, int year) {
        this.name = name;
        this.year = year;
    }


    //获取name的属性值
    public String getName() {
        return name;
    }

    //给name赋值
    public void setName(String name) {
        this.name = name;
    }

    //获取year的属性值
    public int getYear() {
        return year;
    }
    //给year赋值
    public void setYear(int year) {
        this.year = year;
    }


    //打印信息
    public void printInformation(){
        System.out.println("该工人的信息如下:");
        System.out.println("姓名:"+getName());
        System.out.println("年龄:"+getYear());
    }
}

构造方法

构造方法也叫构造器,构造函数

作用:在创建对象时给成员变量进行初始化(赋值)

特点:修饰符 类名(参数){方法体}

            构造方法名与类名相同,大小写也要一致

             构造方法没有返回值,void也没有

             构造方法没有具体的返回值(不能由return带回结果数据)

 //构造方法

    //无参构造方法
    public Worker(){}

    //带参构造方法
    public Worker(String name, int year) {
        this.name = name;
        this.year = year;
    }

构造方法的执行机制:

        创建对象的时候狗杂方法由虚拟机调用,不能手动调用构造方法

        每创建一次对象,就会低欧勇一次构造方法

        如果我们没有写构造方法,那么虚拟机会给我们加一个空参构造方法。

标准类的制作

成员变量

        使用private修饰

构造方法

        提供一个无参构造方法

        提供一个带多个参数的构造方法

成员方法

        提供每一个成员变量对应的getXxx()/setXxx()

        提供一个显示对象信息的show()

如下所示

public class Worker {
    //成员变量
    private String name;
    private int year;


    //构造方法
    public Worker(){}
    public Worker(String name, int year) {
        this.name = name;
        this.year = year;
    }


    //获取name的属性值
    public String getName() {
        return name;
    }

    //给name赋值
    public void setName(String name) {
        this.name = name;
    }

    //获取year的属性值
    public int getYear() {
        return year;
    }
    //给year赋值
    public void setYear(int year) {
        this.year = year;
    }


    //打印信息
    public void printInformation(){
        System.out.println("该工人的信息如下:");
        System.out.println("姓名:"+getName());
        System.out.println("年龄:"+getYear());
    }
}

测试类

创建对象并为其成员变量赋值

为成员变量赋值的两种方式

        无参构造方法:用setXxx()进行赋值

        带参构造方法直接创建带有属性值的对象

代码如下:

package com.work1.example1;
// 在测试类中,请查看键盘录入Scanner类的API,创建工人类对象,属性值由键盘录入,打印对象的属性值。输出效果如下:
import java.util.Scanner;

public class WorkerTest {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入工人的姓名:");
        String name=sc.nextLine();
        System.out.println("请输入工人的年纪:");
        int age=sc.nextInt();

        //使用带参构造方法
//        Worker worker =new Worker(name,age);
//        worker.printInformation();

        //使用无参构造方法
        Worker worker1=new Worker();
        worker1.setName(name);
        worker1.setYear(age);
        worker1.printInformation();
    }

}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值