Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
封装的概述_电子元器件的常见封装,希望能够帮助你!!!。
一、封装
(一)封装的概述
1、封装:隐藏事物的实现细节,对外提供公开的访问方式
2、好处:
(1)隐藏事物的实现细节
(2)提高了代码的复用性
(3)提高了安全性
3、封装的原则
(1)隐藏事物的属性
(2)隐藏事物的实现细节
(3)对外提供公开的访问方式
(二)private关键字
1、private,含义:私有的;权限修饰符:规定了被修饰的代码在哪里能被访问,在哪里不能被访
问
2、可以修饰的内容
(1)修饰成员变量
(2)修饰成员方法
(3)修饰构造方法
(4)修饰内部类
3、修饰之后的效果只能在本类中进行访问,本类之外无法访问
4、private关键字注意 private只是封装思想的一种体现形式,封装还可以使用其他修饰符来完成
(三)Get和Set
1、当成员变量私有化之后,外界无法访问,所以需要对外界提供一个公开的访问方式,来获取成
员变量值和设置成员变量的值
2、访问:通过方法来实现
(1)方法外界可以访问
(2)方法和成员变量同属于一个类型,方法能访问自己类型中的私有成员变量
(3)外界访问方法,方法访问私有成员变量,从而达成间接访问
3、一般情况下,都是set进行赋值,get进行获取值
4、一般情况下,书写类的属性都要用private修饰,个别情况根据需求来修改,并且一般情况下每
一个成员变量都有一套set、get方法
(四)this关键字
1、变量的访问原则是:就近原则
2、(1)作用:表示当前类型当前对象的引用
(2)哪个对象来调用this关键字所在的方法,this就指代哪个对象
(3)在set方法中,this该关键字在见名知意的前提下,用于区分哪个是对象的成员变量,剩下的
一个按照就近原则,就是局部变量。所以在set方法中,使用【this.成员变量的变量名】,一定是
成员变量, 没有使用name的变量,就按照就近原则去寻找
(五)构造方法
1、概述:又叫做构造器或者构造函数,Constructor
2、作用:用于给成员变量赋值!在创建对象的过程中,会自动调用构造方法,等对象创建完毕的
时候, 对象中的成员变量就已经通过构造方法赋值成功了
3、定义格式
修饰符 方法名称(参数列表) { 方法体; }
4、定义说明
(1)构造方法没有返回值,连void也没有
(2)方法名称:和所在类型保持一致
(3)构造方法可以有return语句,但是没有什么必要,只是表示方法结束
5、其它说明
(1)构造方法不能手动调用,在创建对象的时候由JVM自动调用
(2)因为一个对象只能被创建一次,所以构造方法针对同一个对象,只能被调用一次
(3)构造方法可以重载
(4)当一个类没有手动提供任何构造方法时,在编译时系统会自动为我们添加一个空参构造
(5)当我们手动添加了一个任何构造的时候,系统就不会在为我们添加任何构造方法
(6)如果构造方法没有修饰符,也是构造方法,只不过是默认权限而已,方法中的内容无关紧要
(六)构造和set区别
1、构造方法可以为多个成员变量赋值,set只能对一个进行赋值
2、构造方法由JVM自动调用,set需要手动调用
3、构造方法针对同一个对象只能调用一次,set方法针对同一个对象可以调用多次
4、构造方法用于给变量赋值,set可以给变量赋值或者修改值
5、构造可以使代码更加简洁,set方法灵活性更高
(七)初始化顺序
1、创建对象的时候,成员变量经历了三个过程
(1)默认初始化
(2)构造方法初始化
(3)显示初始化
2、三者优先级顺序:构造初始化 < 显示初始化 < 默认初始化
二、制作标准类
概述:JavaBean是Java语言编写类的一种标准格式规范,符合JavaBean的类,要求必须是具体和
公共的,并且具有无参构造,提供用来操作成员变量的set、get方法,【有参构造是根据具体的实
际情况进行设计的】
(一)格式
public class ClassName { //成员变量 //构造方法 //无参构造【必须】 //有参构造【建议】 //成员方法 //set方法 //get方法 }
三、API
1、API:应用程序编程接口
2、接口:用于规定方法名称的规则的集合。定义方法名称、修饰符、返回值类型、参数列表、方
法功能等等
3、实际:应用程序编程接口,也包含了Java中的接口、类、枚举等等
4、学习中,更多侧重于基本的使用,以及一些底层原理,这些内容不需要我们自己去定义,只需
要我们调用
四、Math
1、概述:用于执行基本数学运算的方法
2、两个常量:
(1)E:自然对数的底数:2.718
(2)PI:圆周率,3.
3、构造方法:无
4、常用方法
(1)abs(int a):求绝对值
(2)cbrt(double a):开立方
(3)sqrt(double a):开平方
(4)ceil(double a):向上取整
(5)floor(double a):向下取整
(6)max(int a, int b):求最大值
(7)min(int a, int b):求最小值
(8)random():返回【[0.0,1.0)】之间的随机数
(9)pow(double a, double b):求a的b次方 }
(10)round(double a):四舍五入
五、Arrays
1、此类包含用来操作数组(比如排序和搜索)的各种方法
2、常用方法
(1)binarySearch(int[] a, int key):传入指定数组和要查找的元素,返回元素的索引,如果没有则
返回-1 注意:使用该方法之前必须要进行排序
(2)sort(int[] a):对参数数组进行排序
(3)toString(int[] a):打印数组内容
(4)copyOf(int[] original, int newLength):拷贝数组,返回新数组;传入一个数组,和一个新数
组的长度;如果新长度比原数组长度小就是截取;如果比原数组长度长就是采用默认值填充
(5)equals(int[] a, int[] a2):如果两个指定的 int 型数组彼此相等,则返回 true 。
(6)fill(int[] a, int val):用指定元素替换数组中所有的元素
六、静态
(一)概述
静态:如果所有对象,都具有一个共同的属性值,那么在这个属性上加上一个static,就会让该变
量从原本的对象空间内,改为存储在【方法区的静态区】,从每一个对象都有一份变为所有对象共
享一份
(二)静态变量的特点
1、static,关键字;含义:静态;被他修饰的部分就是静态的
2、静态:不会随着对象的变化而变化
3、加载时机:随着类的加载而加载
4、静态优先于对象存在
5、静态变量被所有当前类型的对象共享
6、代码层面
(1)可以通过对象访问,格式:对象名.静态变量名
(2)可以通过静态访问,格式:类名.静态变量名
(3)静态变量可以通过对象或者类名的方式访问,在不创建对象的时候,也可以进行访问
(三)静态方法
1、概述:就是在方法的声明上加上static
2、静态方法不能访问非静态变量
原因:静态成员随着类的加载而加载优先于对象存在,当静态方法被创建的时候,对象很有可能还
没被创建,非静态变量又是随着对象的创建而创建在堆内存中,所以不能访问
3、静态方法不能访问非静态方法
4、静态方法中不能使用this
原因:this指代当前类型当前对象的引用,当静态方法被创建的时候,对象很有可能还没被创建
5、总结:静态不能访问非静态
6、静态方法的调用
(1)对象名.静态方法名
(2)类名.静态方法名【推荐】
(四)静态变量和非静态变量
1、概念上,所属不同
(1)非静态变量属于对象
(2)静态变量属于类
2、内存空间不同,存储位置不同
(1)非静态变量随着对象存储在堆内存中
(2)静态变量随着类创建在方法区的静态区中
3、内存时间不同,生命周期不同
(1)非静态变量随着对象的创建而创建,随着的对象的消亡而消亡
(2)静态变量随着类的加载而加载,随着类的消亡而消亡
4、访问方式不同
(1)所有的非静态成员都需要通过对象来访问
(2)所有静态方法不仅可以通过对象来访问,也可以通过类名来访问
七、修饰符
1、分类:
(1)访问控制修饰符:public、private、default(默认的)、protected
(2)非访问控制修饰符:final、abstract、static、synchronized
2、权限修饰符,是java中的一些关键字,用于决定代码在哪里可以被访问,在哪里不能访问
3、描述
修饰符 | 本类 | 同一个包中的类 | 子类 | 其他类 |
public | 可以 | 可以 | 可以 | 可以 |
protected | 可以 | 可以 | 可以 | × |
默认的default | 可以 | 可以 | × | × |
private | 可以 | × | × | × |
八、主方法的解释
1、主方法:public static void main(String[] args) {}
2、public,关键字;权限修饰符;含义:公开的,最高权限 主方法由JVM调用,语言和语言之间
的相互调用,需要使用最高权限
3、static,关键字,含义:静态
主方法由JVM自动调用,设置为静态可以不同创建对象来调用,并且在调用main方法的时候也来
不及创建对象,所以只能用静态的。JVM是C语言编写的,C语言是面向过程的,没有对象,只能
使用静态
4、void,关键字,含义:无返回值类型
主方法由JVM自动调用,JVM是C语言写的,C是面向过程的,并且就算有返回值返回,返回给虚拟机也没有任何意义
5、main,不是关键字;含义:主要的
在JVM中,需要执行某个类的时候,只执行main方法,在JVM的代码中,已经将要访问的方法,
作为程序的入口写死了,我们在起名字的时候,不要写main
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章