Java封装等

目录

封装

访问限定符

软件包

如何导入包

自定义包


封装

封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。换句话说,就是为程序屏蔽细节,只留功能接口。

访问限定符

而要实现封装,需要用到访问限定符。不同的访问限定符提供了不同的权限,访问权限用来控制方法或者字段能否直接在类外使用。Java中提供了四种不同的访问限定符

范围

private

default

(默认)

protected

public

同包同类

True

True

True

True

同包不同类

 

True

True

True

不同包子类

   

True

True

不同包非子类

     

True

public权限表示任何情况下都能访问,而private权限则只能在同一类中才能访问,否则发生编译出错。

软件包

封装通过包来实现,包就像一个文件夹,把各种软件放在一个文件夹下,方便访问。为了更好的管理类,把多个类收集在一起成为一组,成为软件包。为了更好的管理,通常把具有某些相同属性的类放在同一个包下。正因为包的出现,Java才能更好的限制不同类的访问权限。包还有一个重要的作用:在同一个工程中允许存在相同名称的类,只要处在不同的包中即可。

如何导入包

如果要导入某个包中的某个类,例如Java中现成的Scanner类,可以使用 java.util.Scanner导入。util为包名,Date为类名。两种方法:

方法一:

public class Testes {
    public static void main(String[] args) {
        java.util.Scanner scanner = new java.util.Scanner(System.in);
        int num = scanner.nextInt();
        System.out.println(num);
    }
}

方法二:

import  java.util.Scanner;
public class Testes {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        System.out.println(num);
    }
}

当然,有时候我们需要包内的类不止一个,如果像这样一个一个导入比较麻烦,可以用*来代替类名,这样,当我们用到包中的某个类时,编译器自动帮助导入。

上面我们说一个工程中可以有相同的类名,只需要在不同的包中即可,那么当我们导入两个不同的包而同时这两个包中恰巧有相同的类名时,编译器无法辨识,发生编译错误,这时import导入方法失效,需要用到第一种方法。

Java中的常用包

  • java.lang:系统常用基础类(String、Object)。JDK1.1后自动导入
  • java.lang.reflect:java 反射编程包;
  • java.net:进行网络编程开发包。
  • java.sql:进行数据库开发的支持包。
  • java.util:是java提供的工具程序包。(集合类等) 非常重要 
  • java.io:I/O编程开发包。

自定义包

首先是创建包:

选择src->New->Pacakage创建自定义包

e080a058d9344bbdb08125348aa8c6ff.png

 包名一般通过域名的颠倒来命名,例如:

9d214f98f95844ea92ab0f5bb2ed751f.png

 创建好包以后,在包中新建类即可。例如创建一个Animal类:

6c6803ba48574cdfb67b996fad50a20c.png

72c859bb5b744129992c562317c80349.png

 创建好的类上面会有一个package 包名:

3bfe07f9c07e430e9647a4699af54756.png

 注意包名一定要匹配好,如果不写package则该类会放到默认包中。

猜你喜欢

转载自blog.csdn.net/weixin_71020872/article/details/127896916
今日推荐