声明
Statement
文章用于本人个人学习记录,目前大一正处于学习之阶段,文章内容如引起不适请见谅。
主要内容
- 封装的好处
- 包的使用
- 访问修饰符
- static 修饰符(重点)
第一节 封装(Encapsulation)
定义
将代码中的部分方法和参数隐藏起来,使用private,在类外不能直接访问private 的变量
如何访问变量
将类中的所以成员变量修饰为private,变量通过公有方法Getter和Setter改变成员变量
快捷生成右键generate生成,Alt+Insert
合法性校验
在Getter和Setter中加入控制语句,对输入进行合法判断
为什么使用封装
-
封装提高代码重用性,因为封装会提供访问的公开方法,方法可以重用
-
维护了代码的可维护性,修改代码时只需要修改部分代码,不会影响其他部分
比如:年龄在设计时只考虑到了负数,没有考虑生活实际,一般人不会超过200岁,因此加上一层验证
-
封装类隐藏类的具体实现细节,保护了代码实现逻辑
第二节 包(package)
1.什么是包
Java中的一个专业词汇,包的本质是文件夹。
2.为什么使用包
因此包可以对我们编写的类进行分类,可以防止命名冲突和访问权限限制(文件属性可以控制谁能修改谁能访问)
3.如何创建包
语法
package 包名;
报名命名规范:
包名一般是由小写字母和数字组成,每个包之间用’.‘隔开,换而言之,一个’.‘就是一个包
类名前面一般都有前缀。
比如个人/组织通常都是org.姓名
,公司通常 com.公司名称简写
或者cn.公司名称简写
如果一个类中有包的定义,第一行有效代码一定是包的定义
4.如何引入包
为了使用不在同一包中的类,需要使用Java的关键词import引入这个类
语法
import 包名.类名;
类的全限定名:包名+’.‘+类名。
全限定名用于唯一标识一个类,避免在多个包中存在相同类名时的混淆。//找到唯一的需求类
为什么引入包?
告诉JVM引用的哪一个包中的哪一个类。因为JVM只能访问当前包的类,其他的他不会默认访问,需要import才能使用。
一个类同时引用了来自调用了不同包的同名类,必须通过完整的类名(类的全限定名)来区分
例如:调用了两个Scanner,一个来自其他类,一个来自java.util,使用java中的Scanner进行输入时,只是举例,一般不会重名Scanner
java.util.Scanner scanner = new java.util.Scanner(System.in);
5.常用包的说明
java.lang包:属于Java语言开发包,该包中的类可以直接拿来使用,不用引入。JVM会自动引入。
经常使用 System、String、math
java.util包:属于Java提供的一些使用类以及工具类,常用的有Scanner
第三节 访问修饰符
1.概念
访问修饰符就是控制访问权限的修饰符号
2.类的修饰符
类的访问修饰符只有两种:public修饰符和默认修饰符
public表示可以公开访问,import调用。
默认修饰符表示使用范围只在本包之中,被保护了,被调用也使用不了。
3.类的成员修饰符
类的成员包括成员变量和方法
类外部不能访问private修饰的变量
4.static修饰符
1.static修饰应用范围
static修饰符只能用来修饰类中定义的变量名、成员方法、代码块以及内部类。
2.static修饰成员变量
不用创建对象就能使用,static修饰的部分属于类本身,属于类的属性,而不是一个特定的对象的部分
使用static修饰的成员变量称之为类变量。属于该类所以成员共享。不会随着成原的变化而变化。
如果static类是公开的,那么可以直接用类名.属性名直接访问成员变量
3.static修饰成员方法
不用创建对象就能使用,static修饰的部分属于类本身,属于类的属性,而不是一个特定的对象的部分
使用static修饰的成员变量称之为类方法。属于该类所以成员共享。不会随着成原的变化而变化。
如果static类是公开的,那么可以直接用类名.方法名直接访问
4.static修饰代码块
static修饰的代码块称为静态代码块,在JVM第一次记载类时执行。因此,静态代码块只能够被执行一次,通常用于一些系统设置场景。
第一次指的是使用了类的方法或者构造方法
static{
country="中国";
}