Java基础 - 封装

一、封装

1.1 概念

封装的是自己的属性和方法
:是将属性和方法等可以用对象调用的代码进行访问权限限制;
:是将属性和方法进行处理打包成合适的方法并向外提供。
我们可以将封装理解为:是一种对代码的使用技巧和编写规范。

1.2 访问权限修饰符

在这里插入图片描述

1.3 private关键字

1.private是私有访问权限修饰符,用来修饰成员变量和成员方法;
2.当被private修饰的成员,只能在本类进行访问;
3.被private修饰的成员变量,如果需要被其他类使用,需提供“读”(get)和“写”(set)当作入口,可以在get和set进行设置操作,确保属性安全。

1.4 set&get方法

对属性进行赋值和获取操作
其中:
get变量名() 方法:
1.用于获取成员变量的值,并用public修饰;
2.可以对数据进行转化。
set变量名(参数) 方法:
1.用于设置成员变量的值,并用public修饰;
2.可用于验证数据,可以在写的时对数据进行验证 ,在方法体赋值操作之前有可以写代码的空间。

1.5 this关键字

1.this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题);
2.方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量。
范例:

package V.Object.Object01_Package;

class User_01 {
    //封装属性,将属性的权限控制修改为私有,确保外部类无法修改这个属性
    private String userName = "Paul";
    private String passWord ;
    private int age;

    //通过get方法获得私有化的属性userName
    public String getUsername(){
        return userName;
    }

    //通过set方法修改私有化的属性age
    public void setAge(int age){
        if(age<100 && age>0){
            this.age = age;
            System.out.println(this.age);
            return;
        }
        System.err.println("年龄不能大于100或者小于0");
    }

}


public class Package {
    public static void main(String[] args) {
        User_01 user_01 = new User_01();
        String userName = user_01.getUsername(); //获取私有化属性userName
        System.out.println(userName);
        System.out.println(userName.length());

        System.out.println("-----------------------");

        user_01.setAge(20);

    }
}


结果:

Paul
4
-----------------------
20

二、构造方法

2.1构造方法是什么?

构造方法是一个比较特殊的方法,通过构造方法可以完成对象的创建,以及实例变量的初始化。
:每个类默认拥有一个隐式的空参数的构造方法,如果显式的写了构造方法(不管有没有参数),就会覆盖隐式构造方法;

2.2构造方法有什么用?

1.构造方法可以实现方法重载;
方法重载: 同一个类可以拥有多个同名的方法,前提是参数不一致(包括数量、类型、顺序不一致)
2.构造方法是创建对象的时候调用 new 类的构造方法(),每个对象只会执行一次。所以可以很方便的初始化对象的属性以及调用一些初始化方法来执行。

2.3语法与使用

public 构造方法名(形式参数列表){
	构造方法体;
}


1.构造方法名和类名必须一致;
2.构造方法没有返回值,所以构造方法不需要指定返回值类型。
范例:

package V.Object.Object01_Package;


class User01_2{
    private String userName;
    //构造函数
    public User01_2(String userName){
        //将传会的值赋给成员变量
        this.userName = userName;
        System.out.println(this.userName);
    }
}



public class Constructor {
    public static void main(String[] args) {
        //调用构造函数,并传值。
        new User01_2("Paul01");
        new User01_2("Paul02");
    }
}

结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值