Java.封装
2021/9/4 22:06:14
本文主要是介绍Java.封装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
封装Encapsulation
- 封装的概念
- 访问修饰符
- 属性的封装
- 方法的封装
- 构造方法(构造器)
- this关键字
- static关键字
封装的概念
- 隐藏对象的实现细节,不让外部直接访问到。将数据和方法包装进类中,加上具体实现的隐藏(访问修饰符)共同被称作封装,其结果是一个同时带有特征和行为的数据类型。
- 定义类,定义其属性、方法的过程称为封装类
访问修饰符
- private (私有的): 在同一类内可见。不能修饰类(外部类)。
- package/friendly/default (缺省) : 在同一包内可见。
- protected (受保护的) : 对同一包内的类和所有子类可见。不能修饰类(外部类)。
- public (公共的) : 对所有类可见。使用对象:类、接口、变量、方法
属性的封装
-
通过修改属性的可见性来限制对属性的访问
-
一般为封装的属性提供一对取值方法(getter) 和赋值方法(setter) 公开这些属性的访问接口
-
示例
public class Student{ private String name; private int age; public void setName(String name){ this.name = name; //this解决name和形参同名的问题 } public void setAge(int age){ this.age = age; } public String getName(){ return name; } public int getAge(){ return age; } }
方法的封装
-
隐藏方法实现细节(方法体),向外部体现公开接口(方法头),以安全简化调用,方便修改维护。
-
根据需要可私有化方法,以供内部调用。
-
示例
public class Time{ private int year; private boolean isLeapYear(){ if((year%4==0 && year%100!=0)||year%400==0){ return true; }else{ return false; } } }
构造方法(构造器)
-
构造方法负责对象初始化工作,为对象的属性赋合适的初值
-
构造方法在创建对象时根据传入的参数自动被调用
-
构造方法的语法规则:
- 构造方法名与类名一致
- 没有返回值,也不能返回给void
- 方法实现主要为字段赋初值
-
示例
class Student{ private String name; private int age; double score; Student(String _name,int _age){ age = _age; name = _name; System.out.println("这是构造方法1"); System.out.println("name:"+name+" age:"+age+" score:"+score); } Student(String _name,int _age,double _score){ age = _age; name = _name; score = _score; System.out.println("这是构造方法2"); System.out.println("name:"+name+" age:"+age+" score:"+score); } } public class Test { public static void main(String[] args) { Student St1 = new Student("xiao ming",18); Student St2 = new Student("xiao hong",16,99); } }
-
结果
这是构造方法1 name:xiao ming age:18 score:0.0 这是构造方法2 name:xiao hong age:16 score:99.0
this关键字
-
其实this在Java中相当于一个代词,是对调用对象的一个替换,主要使用场景如下:
-
在类的方法中使用this,this代表调用此方法的对象
-
this可以看成一个变量,她的值是当前对象
-
可以解决方法中的成员变量和形参同名的问题
-
在类的构造发法中可以调用this(参数列表)来调用该类的指定构造方法
-
示例
class Student{ private String name; private int age; double score; void This(int age){ this.age = age; Student stutemp = this; System.out.println("大家好,我是" + stutemp.name + "。我今年" + this.age + "岁了!"); } Student(String _name,int _age){ age = _age; name = _name; System.out.println("这是构造方法1"); System.out.println("name:"+name+" age:"+age); } Student(String _name,int _age,double _score){ this("NB",66); age = _age; name = _name; score = _score; System.out.println("这是构造方法2"); System.out.println("name:"+name+" age:"+age+" score:"+score); } } public class Test { public static void main(String[] args) { Student St1 = new Student("小可爱",16,99); St1.This(18); } }
-
输出
这是构造方法1 name:NB age:66 这是构造方法2 name:小可爱 age:16 score:99.0 大家好,我是小可爱。我今年18岁了!
static关键字
-
static修饰的成员在类加载的时候就会加载,优先于对象存在。
-
static修饰的变量被称为类变量(静态变量);static修饰的方法被称为类方法(静态方法)。静态方法只能使用之前声明的静态变量。
-
调用的时候直接通过 类名.成员 的形式调用。
-
static修饰的代码块被称为静态代码块,先于构造方法之前执行,只执行一次,用来对静态成员初始化。
-
示例
class Student{ static private String name; static private int age; double score; static void print(){ System.out.println("大家好,我是" + name + "。我今年" + age + "岁了!"); } static{ name = "佚名"; age = 22; } } public class Test { public static void main(String[] args) { Student.print(); } }
-
输出
大家好,我是佚名。我今年22岁了!
❤️ 本回完!❤️ ❤️ ❤️
这篇关于Java.封装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南