Java 中的内部类和静态嵌套类
Java 是一种纯面向对象的编程语言。没有类就不能创建程序。
Java 中的类
类是表示类对象可以访问的一组方法和属性的蓝图或原型。让我们通过一个真实的例子来理解它。
Student
是一个类,它具有一些属性和方法,例如 student name
、student roll no
、cal_gpa()
、cal_fee()
。这些是学院或大学中每个学生的一些共同属性。
我们很容易创建一个类,定义所有必需的属性,并使用每个学生的类对象访问它们。
代码示例:
package articlecodesinjava;
class Student {
String name;
int rollNumber;
void cal_gpa() {
System.out.println("The method calculates CGPA.");
}
void cal_fee() {
System.out.println("The method calculates the Semester fee.");
}
}
public class ArticleCodesInJava {
public static void main(String[] args) {
// creating objects of Student class
Student Jinku = new Student();
Student Zeeshan = new Student();
System.out.println("This is Jinku's details.");
System.out.println(Jinku.name = "Jinku");
System.out.println(Jinku.rollNumber = 1);
Jinku.cal_fee();
Jinku.cal_gpa();
System.out.println("\n\nThis is Zeeshan's details.");
System.out.println(Zeeshan.name = "Zeeshan Afridi");
System.out.println(Zeeshan.rollNumber = 2);
Jinku.cal_fee();
Jinku.cal_gpa();
}
}
输出:
This is Jinku's details.
Jinku
1
The method calculates the Semester fee.
The method calculates CGPA.
This is Zeeshan's details.
Zeeshan Afridi
2
The method calculates the Semester fee.
The method calculates CGPA.
我们将学生的蓝图定义为一个类,其中包含有关他们的基本信息,例如姓名、卷号、CGPA 和费用。现在我们可以为每个学生调用这些属性和方法,而不是为每个学生定义所有这些。
如你所见,我们创建了两个对象,Jinku
和 Zeeshan
,并为这些对象调用 Student
类的属性和方法。
Java 中类的结构
Java 是一种强面向对象的编程语言;即使是一行代码也需要一个类和 main
方法。
类的语法:
AccessSpecifer classKeyword ClassName{
//Class body
}
例子:
Public class Student {
// Class body
}
-
根据代码的可访问性,
AccessSpecifer
可以是public
、private
或protected
。 -
class
关键字对于定义一个类是强制性的;否则,你无法创建课程。 -
ClassName
也是创建类所必需的。最佳实践和指南说名称应该是有意义的,使代码更容易理解和可读。 -
类主体
是类的边界或界限。你可以在类体内定义变量和方法。类主体以
{
开始并以}
结束。
Java 中嵌套类的类型
嵌套类是指另一个类中的一个类。这种现象类似于嵌套条件和循环。
Java 允许你创建嵌套类。它使你能够对在一个地方使用的类进行逻辑分组,并且还增加了封装的使用。
嵌套类的语法:
class OuterClass { // OuterClass
Class InnerClass { // InnerClass }
}
在 Java 中,有两种类型的嵌套类。这些是:
- 静态嵌套类
- 内部类
Java 中的静态嵌套类
静态嵌套类被定义为其外部类的静态成员,关键字 static
。无需使用其他静态成员实例化外部类即可访问静态嵌套类。
与其他静态成员类似,静态类无法访问其外部类的方法和实例变量。
代码示例:
public class OuterClass {
static class NestedStaticClass { // Outer class
public void my_method() { // Inner class
System.out.println("This is a static nested class.");
}
}
public static void main(String args[]) { // Main function
// object of nested class
NestedStaticClass ob = new NestedStaticClass();
ob.my_method();
}
}
输出:
This is a static nested class.
Java 中的内部类
安全始终是几乎所有软件或组织的重中之重。Java 以其安全性而闻名,内部类是帮助我们实现这些安全标准的组件之一。
要访问内部类,首先需要创建外部类的对象,然后使用该对象,就可以制作内部类的对象。
与常规或简单类不同,内部类有权访问 protected
和 private
指定的属性和方法。此外,如果你不希望外部对象访问内部类,你可以将内部类声明为 private
。
代码示例:
public class OuterClass {
class NestedStaticClass { // Outer class
public void my_method() { // Inner class
System.out.println("This is a nested inner class.");
}
}
public static void main(String args[]) { // Main function
// object of nested class
OuterClass OuterObj = new OuterClass();
OuterClass.NestedStaticClass obj = OuterObj.new NestedStaticClass();
obj.my_method();
}
}
输出:
This is a nested inner class.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn