包的使用及其创建

文章目录

  • 前言
  • 类名冲突
  • 完整的类路径
  • 创建包
  • 导入类包
  • 总结

前言

        java语言中,包在整个管理过程中发挥了重要的作用。使用包,可以有效地管理繁多的类文件,解决了类名重复的问题。在类中应用包和权限修饰符,可以控制他人对类成员的方法的访问。


类名冲突

        问题:重复创建相同的类,会导致调用类时,无法区分哪一个类

        解决方法:将两个同名、但不同方法的放置于不同的中。避免调用类时,无法判断调用哪一个类。

        举例:

                java API 文档中

                        java sql 包 中有 Date类

                        java util 包 中有 Date类

                                两个Date类,同名,不同方法

                调用Date类时,通过调用不同的包来确定调用的是哪一个Date类

        注:自己创建了与API相同类名的类,会覆盖API的类。通过修改类名,解决 此类名冲突 的问题 

                

public class Demo{
	public static void main(String[] args){
	String a = “123”;    //报错!!!
    }
}

class String{
    // 覆写了 API 中String类,API的String被覆盖
}

        此代码中,main方法中的String 数据类型 无法使用,报错。String类被覆写。

        解决方法:将代码中的 String类修改为  MyString (不论什么名,不和java API重名就行)

完整的类路径

        完整类名:包名.类名

                   eg: java.lang.String        包名:java.lang        类名:String

         调用java API 中的类

                第一种方法:

                        1. import 关键字 导入对应 java API 中的类

                        2. new 关键字 实例化对象,调用其方法

import java.util.Date;
//导入指定的Date包,完整的类路径

public Class Demo{
    public static void main(String[] args){
        Date date = new Date();
        //实例化Date对象,调用其类中的方法
    }
}

                第二种方法:

                        直接用 java API 中的完整类名 new 关键字实例化 实现调用

                        使用场景:

                                通过第一种方法,同时导入 util 包中的 Date类  和   sql 包中的 Date 类,会报错系统无法判断Date实例化后,实现哪一个功能

                        解决方法: 通过  直接用java API中的完整类名 实例化 实现调用

public class Demo{
    public static void main(String[] args){
        java.util.Date date1 = new java.util.Date();
		java.sql.Date date2 = new java.sql.Date();
        // 通过 使用 完整类名 new 关键字 实例化对象,实现了调用 sql包 和 util包 中的两个Date类
    }
}

创建包

         创建包的名称规范:

                想表达为:  com.java              包的命名为:java.com

        

         如何调用其他包和本包中多个同名类中的方法?

        情景:本包中有Action , Demo 类    package5包中也有Action类

                  在Demo类main方法中

                  实例化 Action

                  实例化 完整类路径 package5.Action

                  可实现在Demo类中,同时调用本包中Action类和 com.mingri包中Action 类的方法

       

        package5包中的Action类

package package5;

public class Action {
	public void action() {
	System.out.println("这里是 package5 包中的 action方法");
	}
}

         本包中的Action类

public class Action {
	public void action() {
		System.out.println("这里是 本包 中的 action方法");
	}
}

         本包中的Demo类

public class Demo {

	public static void main(String[] args) {
		Action a1 = new Action();
		a1.action();
        //调用本包中的 Action()方法
		
		package5.Action a2 = new package5.Action();
		a2.action();
        //调用 package5 包中的 Action()方法
	}
}

         输出结果: 包的使用及其创建_第1张图片

          以上为调用其他包和本包中多个同名类中的方法 的 实操展示

导入类包

          调用一个包中的类

import java.lang.Math

                       包的名称: java.lang

                       类的名称: Math

 

         import 关键字导入静态属性

                使用方法:import static  静态属性

                没有导入静态属性

public class Demo{
	public static void main(String[] args){
	System.out.println();
    }
}

                导入静态属性

import static java.lang.System.out; //Demo中的静态成员 out
public class Demo{
	public static void main(String[] args){
		out.println();  //和System.out.println(); 效果一样
    }
}

import java.util.*;

        注:导包中的 * 表示调取 java API 中 util 包里的所有类,避免了重复使用 import 关键字导入的繁琐

        eclipse快捷键:shift+ctrl+o  自动补全所有代码中需要导入的包


总结

        以上就是”包的使用“的简单介绍。如果文章中有几处错误,或者未补充到的东西,欢迎在评论区中讨论,我会即使进行反馈的。

你可能感兴趣的:(java编程学习日志,开发语言,java)