Java - 将类分成带有示例的包
首先让我们知道什么是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
Note: Here the keyword class is used to declare a class. After this, we should write a class name. In the class, we write instance variables and methods.
Java的软件包
在Java,包是类、子包和接口的集合。即一个包代表一个字典,其中包含一组相关的类和接口。每当我们编写如下所示的语句时,我们都会导入Java.io.*包的所有类。这里, Java是一个目录名, io 是其中的另一个子目录。而 * 代表该io 子目录的所有类和接口。
import java.io.*;
我们有很多这样的包,例如, Java.lang、 Java.util,而且确实存在更多的包,它们的 d 位于包中的类。为了使用,让我们使用最常用的包,即用于Java设计的 'lang' 包和用于输入输出操作的 'io' 包。
让我们讨论一下Java hat中包的优点如下:
- 包可用于将与接口相关的类安排到一个组中。这将在包中执行相同任务的所有类和接口放在一起。例如,在Java,所有执行输入和输出操作的类和接口都存储在Java.io包中。
- 包将类和接口隐藏在单独的子目录中。
- 一个包的类和接口与另一个包的类和接口隔离。
包裹类型
Java中列出了两种类型的包:
- 内置包
- 用户定义的包
类型 1:内置 套餐
这些是Java语言中已经可用的包。这些包为程序员提供了几乎所有必要的类、接口和方法来执行任何任务。它们如下:
- Java的.lang
- Java的.util
- Java的.IO
- Java的.awt
- javax.swing
- Java的.NET
- Java程序
- Java的的.text
- Java的.SQL
类型 2:用户定义 套餐
就像前面展示的内置包一样, Java语言的用户也可以创建自己的包。它们被称为用户定义的包。这些包也可以导入到其他类中,并以与内置包完全相同的方式使用。
语法:创建包,使用package关键字
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 有效,对于 rlinux 和 mac zsh shell,请参考以下媒体,以与下面提供的相同方式感知
执行:
现在让我们将类划分为包
步骤1:定义一个StudentData类,其中包含学生的以下信息:
- ID :它是一个字符串,存储每个学生的唯一 ID
- Name :它是一个字符串,表示学生的姓名。
请注意,这些字段应声明为私有。
第 2 步:使用名为 location(存储学生位置的字符串)的私有属性创建另一个类 StudentDataExtended。
第三步:现在在这个类中定义一个方法addDetails() 方法来存储学生的详细信息;以及一个方法printDetails() 方法,该方法按照学生 id 的排序顺序输出学生的详细信息。
Note : Both the classes should be in different packages
插图:
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
例子
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; }
}
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 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 message for asking input from 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 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);
}
}
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 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 message for asking input from 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 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);
}
}
输出: