Java面向对象之封装、枚举和包
Java 封装 {Encapsulation}
指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装的优点:
1.良好的封装能够减少耦合。
2.类内部的结构可以自由修改。
3.可以对成员变量进行更精确的控制。
4.隐藏信息,实现细节。
Java封装的步骤
修改属性为private,实现信息隐藏;
只能通过访问器getter进行访问,修改器setter进行修改;
采用 this 关键字是为了解决实例变量(private String name)和局部变量(setName(String name)中的name变量)之间发生的同名的冲突
public class Person{
private String name;
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
}
枚举
是一个特殊的类,一般表示一组常量;
使用 enum 关键字来定义,常量间逗号来隔开;
public class Test{
enum Color{
RED, GREEN, BLUE;
}
public static void main(String[] args){
Color c1 = Color.RED;
System.out.println(c1);}
for (Color myVar : Color.values()) {
System.out.println("枚举参数:"+myVar+"枚举参数索引:"+myVar.ordinal());
}
}
enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Seriablizable 和
java.lang.Comparable 两个接口。
values() 返回枚举类中所有的值。
ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
valueOf()方法返回指定字符串值的枚举常量。
枚举类成员
枚举跟普通类一样可以用自己的变量、方法和构造函数,构造函数只能使用 private 访问修饰符,所以外部无法调用。
枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它。
enum Color
{
RED, GREEN, BLUE;
// 构造函数
private Color()
{
System.out.println("Constructor called for : " + this.toString());
}
public void colorInfo()
{
System.out.println("Universal Color");
}
}
public class Test
{
// 输出
public static void main(String[] args)
{
Color c1 = Color.RED;
System.out.println(c1);
c1.colorInfo();
}
}
//Constructor called for : RED
//Constructor called for : GREEN
//Constructor called for : BLUE
//RED
//Universal Color
包(package)
包的作用:
1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
2、避免名字冲突;如同文件夹一样,采用树形目录的存储方式。同一包中的类名字不同,不同包中的类名可以相同;当同时调用两个不同包中相同类名的类时,可以加上包名加以区别。
3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
创建包
通常使用小写的字母来命名避免与类、接口名字的冲突。
// ....\vehicle\Car.java
//文件名 : Car.java
package com.example; //放在对应目录中
public class Car {
// 类实现
}
import 关键字
import java.util.ArrayList; // 引入 java.util 包中的 ArrayList 类
import java.util.*; // 引入 java.util 包中的所有类
import com.example.MyClass; // 引入 com.example 包中的 MyClass 类
import com.example.*; // 引入 com.example 包中的所有类
在这里欢迎大家的点赞、关注、评论,以此来促进大家互相学习交流,同时可以让新加入的小伙伴更快的了解新知识!!!
以上内容如有侵权,请联系作者进行删除
≧◠◡◠≦ 1分2分都是爱,感谢已经打赏的老板,和正在打赏的老板们 ≧◠◡◠≦