Java中的封装性及构造方法

一、封装性

面向对象包括三大特征:

封装 继承 多态

封装的好处:

1.封装之后,对于那个事物来说,看不到这个事物比较复杂的那一面,只能看到该事物简单的那一面。

复杂性封装,对外提供简单的操作入口。

2.封装之后才会形成真正的"对象",真正的"独立体"。

3.封装就意味着以后的程序可以重新使用。并且这个事物应该适应性比较强,在任何场合都可以使用。

4.封装之后,对于事物本身,提高了安全性。【安全级别高】

封装的步骤:

1.所有属性私有化,使用private关键字进行修饰,private表示私有的,修饰的所有数据只能在本类中访问

2.对外提供简单的操作入口,也就是说以后外部程序要想访问某属性,必须通过这些简单的入口进行访问:

------对外提供两个公开的方法,分别是set方法和get方法

------想修改某属性,调用set方法

------想读取某属性,调用get方法

3.set方法的命名规范:

public void setAge(int a){

age = a;

}

4.get方法的命名规范:

public int getAge(){

return age;

}

*** setter and getter方法没有static关键字

有static关键字修饰的方法怎么调用:类名.方法名(实参)

没有static关键字修饰的方法怎么调用:引用.方法名(实参)

public class User{

//属性私有化

private int age;

//setter

public void setAge(int a){

age = a;

}

//getter

public int getAge(){

return age;

}

}

public class UserTEst{

public static void main(String[] args){

//创建User对象

User user = new User();

//修改

user.setAge(-100);

//读取

System.out.println(user.getAge());

}

}

私有属性不能在外部直接访问,这就是封装

操作入口变成了只能通过set和get方法进行访问

在set和get方法执行过程中可以进行安全过滤

二、构造方法

关于java类中的构造方法:

1.构造方法又被称为构造函数/构造器/Constructor

2.构造方法语法结构:

【修饰符列表】 构造方法名 (形式参数传递){

构造方法体;

}

3.回顾普通方法的语法结构:

【修饰符列表】 返回值类型 方法名 (形式参数列表){

方法体;

}

4.对于构造方法来说,"返回值类型"不需要指定,并且也不能写void,

只要写上void,那么这个方法就成为普通方法了。

5.对于构造方法来说,构造方法的方法名必须和类名保持一致。

6.构造方法的作用:

构造方法存在的意义是,通过构造方法的调用,可以创建对象。

7.构造方法应该怎样调用?

* 普通方法的调用:方法修饰符列表中有static的时候:类名.方法名(实参列表)、

方法修饰符列表中没有static的时候:引用.方法名(实参列表);

*new 构造方法名(实参列表)

8.构造方法调用执行后,有返回值吗?

每一个构造方法实际上执行结束之后都有返回值,但是这个"return值;"这样的语句不需要写。构造方法

结束的时候java程序自动返回值。并且返回值类型是构造方法所在类的类型。由于构造方法的返回值类型就

是类本身,所以返回值类型不需要编写。

9.注释和取消注释: ctrl+/, 多行注释: ctrl+shift+/

10.当一个类中没有定义任何构造方法的话,系统默认给该类提供一个无参数的构造方法,这个构造方法被称

为缺省构造器。

11.当一个类显示的将构造方法定义出来了,那么系统则不再默认认为这个类提供缺省构造器。建议开发中手动的为当前类提供无参数构造方法。因为无参数构造方法太常用了。

12.构造方法支持重载机制。在一个类当中编写多个构造方法。这多个构造方法显然已经构成方法重载机制。

* 构造方法的作用:

1.创建对象

2.创建对象的同时,初始化实例变量的内存空间。【给实例变量赋值】

*成员变量之实例变量,属于对象级别的变量,这种变量必须先有对象才能有实例变量。

*实例变量没有手动赋值的时候,系统默认赋值,那么这个系统默认赋值是在什么时候完成的呢?

不是在类加载的时候,因为类加载的时候只加载了代码片段,还没来得及创建对象。所以此时实例变量没有初始化。

实际上,实例变量的内存空间是在构造方法执行过程当中完成开辟的。完成初始化的。

系统在默认赋值的时候,也是在构造方法执行过程当中完成的赋值。

实例变量默认值:

byte short int long 0

float double 0.0

bolean false

引用数据类型 null

实例变量是存储在JVM的堆内存java对象内部

对象和引用的概念:

对象:目前在使用new运算符在堆内存中开辟的内存空间称为对象

引用:是一个变量,不一定是局部变量,还可能是成员变量。引用保存内存地址,指向了堆内存当中的对象。

所有访问实例相关的数据,都需要通过"引用."的方式访问,因为只有通过引用才能找到对象。

只有一个空的引用,访问对象的实例相关的数据会出现空指针异常。

相关推荐
用户3721574261353 小时前
Java 实现 Excel 与 TXT 文本高效互转
java
浮游本尊4 小时前
Java学习第22天 - 云原生与容器化
java
渣哥6 小时前
原来 Java 里线程安全集合有这么多种
java
间彧6 小时前
Spring Boot集成Spring Security完整指南
java
间彧6 小时前
Spring Secutiy基本原理及工作流程
java
Java水解7 小时前
JAVA经典面试题附答案(持续更新版)
java·后端·面试
洛小豆9 小时前
在Java中,Integer.parseInt和Integer.valueOf有什么区别
java·后端·面试
前端小张同学10 小时前
服务器上如何搭建jenkins 服务CI/CD😎😎
java·后端
ytadpole10 小时前
Spring Cloud Gateway:一次不规范 URL 引发的路由转发404问题排查
java·后端
华仔啊10 小时前
基于 RuoYi-Vue 轻松实现单用户登录功能,亲测有效
java·vue.js·后端