当前位置:网站首页>代码块、Package,Import,封装(第六天)
代码块、Package,Import,封装(第六天)
2022-07-31 05:10:00 【不习惯有你】
代码块
使用"{}"括起来的一段代码
分类:根据位置可分类
普通代码块、构造代码块、静态代码块、同步代码块
普通代码块:定义在方法中,使用{}括号括起来的代码叫做普通代码块
构造代码块:定义在类中,使用{}括号括其阿里的代码叫做构造代码块
注意:每次代码运行的时候会将构造代码块中的代码添加到构造方法前面
构造代码块中的代码会添加到每一个构造方法中,当使用this的时候不会添加
静态代码块:使用static{}括号括起来的代码叫做静态代码块,在程序载入的时候优先执行
数据库连接等其他提前需要准备好的代码会放在static代码块里
共享代码块:在多线程的时候会使用,用来给共享空间进行加锁操作
执行顺序:静态代码块>>构造代码块(创建对象的时候用到)>>普通代码块
pakage
为什么要引入package?
为了解决类之间的重名问题,为了便于管理类:适合的类位于适合的包
在我看来说白了就是相当于文件夹
使用:
一般定义pakage会放置在java文件的第一行
pakage 域名的倒写 pakage com.hjw.类名
www.hjw.com
完全限定名:包名+类名
JDK中常用的包
lang:不需要手动导入,自我加载
util:工具包
net:网络包
io:输入输出流包
import:
当需要引入非lang包的其他java类的时候,需要使用import工具
如果不使用import,每次在使用某个类的时候必须要将类的完全限定名都加上才可以使用,太过于繁琐
用法:import java.包名.类名; 导入具体的类 <推荐使用>
import 包名.*; 将当前包下的所有类文件都进行导入
注意:当一个java文件中需要使用多个同名的类的时候,只能选择导入一个,另一个使用完全限定名的方式进行导入
静态导包:例如import static java.util.Math.*
封装:
封装可以解决在赋值的时候添加一些逻辑判断
使用封装可以保证数据的规范,不符合规范的数据将无法进行操作
什么是封装:
面向对象的三大特征之一 :封装
好处:1.隐藏类的内部实现细节
2.只能通过提供的方法进行访问,其他方法无法进行访问
3.可以根据需求添加复杂的逻辑判断语句
4.方便修改实现
面向对象的封装可以用一句话概述:为了保证数据的安全与规范
将类中的属性设置为私有属性,提供共有的为外部方法供程序进行调用,可以实现丰富的细节操作
封装的时候带有private关键词,并且要有set/get方法
java中明确定义了访问权限;限制访问,以下分类按照从大到小分类
public:公共的,当前项目所有的类都可以进行访问
protected:受保护的,当前类,当前包,子类访问
default: 默认权限,可以被当前类,当前包访问
private:私有权限,只能被当前类访问
属性方法的访问权限修饰符有四个:private、defualt、prottected、public
类的访问修饰符只有两个:public、defualt
方法参数的值是否改变:
方法中的参数列表叫做形式参数,没有具体的值,只是为了方便在方法中使用
调用方法的时候实际传入的值叫做实际参数,代表具体的数值,用来替换在方法体重代码逻辑的值进行运算
注意:
1.形式参数的变量名称也是局部变量
2.当方法的参数值是基本数据类型的时候,不会改变原来的值
3.当方法的参数1值是引用类型的时候,如果改变了该引用类型的值,会改变原来对象的值
java中的参数传递是值得传递
边栏推荐
- 关于小白安装nodejs遇到的问题(npm WARN config global `--global`, `--local` are deprecated. Use `--location=glob)
- vulhub靶场学习日记SickOs1.2
- 剑指offer基础版 --- 第21天
- tf.keras.utils.pad_sequences()
- 分布式事务——分布式事务简介、分布式事务框架 Seata(AT模式、Tcc模式、Tcc Vs AT)、分布式事务—MQ
- uni-app进阶之生命周期【day8】
- 13 【代理配置 插槽】
- 字符串的扩展
- C语言实验二 数据类型、运算符和表达式
- Three-party login using wallet Metamask based on web3.0
猜你喜欢
[mysql improves query efficiency] Mysql database query is slow to solve the problem
vulhub靶场学习日记xxe-lab
gin框架学习-Casbin入门指南(ACL、RBAC、域内RBAC模型)
Quickly master concurrent programming --- the basics
剑指offer专项突击版 --- 第 4 天
MySQL (updating)
Flask-based three-party login process
Qt Creator + CMake 运行调试总会自动 build 所有目标
uni-app进阶之认证【day12】
【C语言3个基本结构详解——顺序、选择、循环】
随机推荐
Sword Point Offer Special Assault Edition ---- Day 2
Kubernetes 证书可用年限修改
About the problems encountered by Xiaobai installing nodejs (npm WARN config global `--global`, `--local` are deprecated. Use `--location=glob)
Data set partitioning and cross-validation
解决响应式数据依赖响应式数据无响应问题
mysql 的简单运用命令
“档次法”——用于物品体积分布不均匀的01背包问题的求解方法
PAT_乙级_真题练习_1007_素数对猜想
剑指offer基础版 --- 第22天
闭包(五)----一个常见的循环
leetcode-每日一题1217. 玩筹码(贪心+位运算)
08 【生命周期 组件】
The interviewer asked me how to divide the database and the table?Fortunately, I summed up a set of eight-part essays
uni-app进阶之自定义【day13】
13 【代理配置 插槽】
数据库上机实验5 数据库安全性
剑指offer基础版--- 第23天
实验8 DNS解析
torch.normal函数用法
基于web3.0使用钱包Metamask的三方登陆