热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何在Java中为不同的类创建不同的包?

如何在Java中为不同的类创建不同的包?原文:https:/

如何在 Java 中为不同的类创建不同的包?

原文:https://www . geesforgeks . org/如何在 java 中为不同的类创建不同的包/

让我们先了解一下什么是 Java 中的类和包。类是创建对象的模型。这意味着对象的属性和动作是在类中编写的。属性由变量表示,对象的动作由方法表示。所以,一个类包含变量和方法。同样的变量在对象中也是可用的,因为它们是从类中创建的。这些变量也被称为“实例变量”,因为它们是在对象(实例)内部创建的。

插图:

class Human
{
// Properties --> Instance variables
String name;
int age;
// Actions --> methods
void speak()
{
System.out.println("Hey there! I am " + name);
System.out.println("My age is " + age);
}
}

输出:

Hey there! I am Vasanth Kumar
My age is 20


注意:这里关键字 class 是用来声明一个类的。在这之后,我们应该写一个类名。在类中,我们编写实例变量和方法。

Java 中的包

在 Java 中,包是类、子包和接口的集合。也就是说,一个包代表一个字典,其中包含一组相关的类和接口。每当我们写一条如下所示的语句时,我们都在导入 java.io.包的所有类。这里,java 是一个目录名,io 是其中的另一个子目录。而表示该 io 子目录的所有类和接口。

import java.io.*;

我们有很多这样的包,例如, java.lang,java.util ,而且还有更多包里面有类。为了使用它,让我们选择最常用的包,即 java 设计的“lang”包和输入输出操作的“io”包。

让我们讨论一下 java 包的优点,如下所示:


  1. 包对于将接口的相关类排列成一组很有用。这将包中执行相同任务的所有类和接口放在一起。例如,在 Java 中,执行输入和输出操作的所有类和接口都存储在 java.io 包中。

  2. 包将类和接口隐藏在单独的子目录中。

  3. 一个包的类和接口与另一个包的类和接口是隔离的。

java 中有两种类型的包,如下所示:


  • 类型 1: 内置包装

  • 类型 2: 用户定义的包

类型 1: 内置包装

这些是已经在 Java 语言中可用的包。这些包为程序员执行任何任务提供了几乎所有必要的类、接口和方法。它们如下:

java.lang
java.util
java.io
java.awt
java.net
java.applet
java.text
java.sql
javax.swing

类型 2: 用户定义的包

就像前面显示的内置包一样,java 语言的用户也可以创建自己的包。它们被称为用户定义包。这些包也可以导入到其他类中,并以与内置包完全相同的方式使用。

语法:创建包,使用包关键字

2.1.1 创建包

package package_name ;

2.1.2 在包中创建子包

package package_name.subpackagename ;

2.2 编译

C:\> javac -d . classname.java

2.3 运行程序

C:\> java packagename.classname

上述语法仅适用于 windows CMD shell,fo rlinux 和 mac zsh shell 指的是下面的媒体,因为它们的感知方式与下面提供的相同

实施:

现在让我们把这个类分成包

第 1 步:定义一个班级学生数据,包含学生的以下信息:


  • ID: 是存储每个学生唯一 ID 的字符串

  • 姓名:是表示学生姓名的字符串。


请注意,这些字段应该声明为私有。

第 2 步:用名为 location 的私有属性创建另一个 StudentDataExtended 类。它基本上是一个存储学生位置的字符串。

第三步:现在在这个类中定义一个方法 addDetails() 方法存储学生的详细信息;以及一种方法 printDetails() 方法,按照学生 id 的排序顺序输出学生的详细信息。

注意:两个类应该在不同的包中

插图:

Enter the number of students : 2
Enter the details of Student 1 (id, name, location):
B200 Ajay Hyderabad
Enter the details of Student 2 (id, name, location):
B100 Ramesh Hyderabad

输出:

The Student Details are:
B100 Ramesh Hyderabad
B200 Ajay Hyderabad

实施:

现在让我们想出真正的可运行的例子来实现上面讨论和说明的内容:

例 1-A:

Java 语言(一种计算机语言,尤用于创建网站)


// Java Program Illustrating Dividion of Classes into
// Packages where Class StudentData
// which creates first package i.e pack1
// Importing package
package pack1;
// Main class
public class StudentData {
    private String id;
    private String name;
    // Method 1
    public void addStudentData(String id, String name)
    {
        // This keyword refers to current instance itself
        this.id = id;
        this.name = name;
    }
    // Getter setters Methods
    // Use getter methods so that we can
    // access private members for other packages
    public String getId() { return id; }
    public String getName() { return name; }
}

例 1-B:

Java 语言(一种计算机语言,尤用于创建网站)


// Java Program Illustrating Dividion of Classes into
// Packages where Class StudentDataExtended creates
// Second package- pack2 and uses the first package
// Importing packages
package pack2;
// Importing required classes
// from pre-defined packages
import java.io.*;
import java.lang.*;
import java.util.*;
import pack1.*;
// Main class
class StudentDataExtended extends StudentData {
    private String location;
    public void addDetails(String id, String name,
                           String location)
    {
        addStudentData(id, name);
        // This keyword refers to current object itself
        this.location = location;
    }
    // Method 1
    public static void
    printDetails(TreeMap<String, StudentDataExtended> map)
    {
        // Iterating via for each loop
        for (String a : map.keySet()) {
            StudentDataExtended student = map.get(a);
            // Print ID and name of student
            System.out.println(student.getId() + " "
                               + student.getName() + " "
                               + student.location);
        }
    }
    // Method 2
    // Main driver method
    public static void main(String[] args)
    {
        // Display a message for asking input from the user
        System.out.print("Enter the number of students : ");
        // Scanner class to read user input
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String buffer = sc.nextLine();
        int count = 1;
        // Creating a TreeMap
        TreeMap<String, StudentDataExtended> map
            = new TreeMap<>();
        while (n != 0) {
            System.out.println(
                "Enter the details of Student " + count
                + " (id, name, location):");
            count++;
            String details = sc.nextLine();
            String studentInfo[] = details.split(" ");
            StudentDataExtended student
                = new StudentDataExtended();
            student.addDetails(studentInfo[0],
                               studentInfo[1],
                               studentInfo[2]);
            map.put(studentInfo[0], student);
            n--;
        }
        // Display message
        System.out.println("\nThe Student Details are:");
        // Calling above method 1 to
        // print details of the students
        printDetails(map);
    }
}

输出:


推荐阅读
  • 笔记说明重学前端是程劭非(winter)【前手机淘宝前端负责人】在极客时间开的一个专栏,每天10分钟,重构你的前端知识体系& ... [详细]
  • 解析Java虚拟机HotSpot中的GC算法实现
    本文探讨了Java虚拟机(JVM)中HotSpot实现的垃圾回收(GC)算法,重点介绍了根节点枚举、安全点及安全区域的概念和技术细节,以及这些机制如何影响GC的效率和准确性。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 本文基于Java官方文档进行了适当修改,旨在介绍如何实现一个能够同时处理多个客户端请求的服务端程序。在前文中,我们探讨了单客户端访问的服务端实现,而本篇将深入讲解多客户端环境下的服务端设计与实现。 ... [详细]
  • 1、编写一个Java程序在屏幕上输出“你好!”。programmenameHelloworld.javapublicclassHelloworld{publicst ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • Go语言实现文件读取与终端输出
    本文介绍如何使用Go语言编写程序,通过命令行参数指定文件路径,读取文件内容并将其输出到控制台。代码示例中包含了错误处理和资源管理的最佳实践。 ... [详细]
  • SSE图像算法优化系列三:超高速导向滤波实现过程纪要(欢迎挑战)
    自从何凯明提出导向滤波后,因为其算法的简单性和有效性,该算法得到了广泛的应用,以至于新版的matlab都将其作为标准自带的函数之一了&#x ... [详细]
  • 编码unicode解决了语言不通的问题.但是.unicode又有一个新问题.由于unicode是万国码.把所有国家的文字都编进去了.这就导致一个unicode占用的空间会很大.原来 ... [详细]
  • 数据输入验证与控件绑定方法
    本文提供了多种数据输入验证函数及控件绑定方法的实现代码,包括电话号码、数字、传真、邮政编码、电子邮件和网址的验证,以及报表绑定和自动编号等功能。 ... [详细]
  • Spring Security基础配置详解
    本文详细介绍了Spring Security的基础配置方法,包括如何搭建Maven多模块工程以及具体的安全配置步骤,帮助开发者更好地理解和应用这一强大的安全框架。 ... [详细]
  • 基于SSM框架的在线考试系统:随机组卷功能详解
    本文深入探讨了基于SSM(Spring, Spring MVC, MyBatis)框架构建的在线考试系统中,随机组卷功能的设计与实现方法。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • 本文探讨了异步编程的发展历程,从最初的AJAX异步回调到现代的Promise、Generator+Co以及Async/Await等技术。文章详细分析了Promise的工作原理及其源码实现,帮助开发者更好地理解和使用这一重要工具。 ... [详细]
  • 想把一组chara[4096]的数组拷贝到shortb[6][256]中,尝试过用循环移位的方式,还用中间变量shortc[2048]的方式。得出的结论:1.移位方式效率最低2. ... [详细]
author-avatar
郑小斌-杭州
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有