Java面向对象之封装、枚举和包分析解读

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分都是爱,感谢已经打赏的老板,和正在打赏的老板们 ≧◠◡◠≦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TinyTuiKun

感谢各位老板们的打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值