Home  >  Article  >  Java  >  The latest method of distinguishing between classes and objects in Java, take it away now.

The latest method of distinguishing between classes and objects in Java, take it away now.

php是最好的语言
php是最好的语言Original
2018-07-24 09:40:351384browse

As a senior Java enthusiast, I specially summarized this document, and I hope that sharing it can help everyone. After reading it, are you still unclear about objects and classes? The object here is not looking for a girlfriend, it is an instance of a class, with state and behavior; and a class is a template, which describes the behavior and state of a type of object.

Java Objects and Classes

Java is an object-oriented language. Supports the following basic concepts:

  • Polymorphism

  • Inheritance

  • Encapsulation

  • Abstract

  • Class

  • Object

  • Instance

  • Method

  • Overloading

In this section we focus on the concepts of objects and classes.

  • Object: The object is an instance of the class (The object is not to find a girlfriend), with state and behavior. For example, a dog is an object. Its status includes: color, name, and breed; its behaviors include: wagging its tail, barking, eating, etc.

  • Class: A class is a template that describes the behavior and status of a type of object.

In the picture below, boys and girls are classes, and each specific person is the object of the class:


Java Objects in

Now let’s dig into what an object is. If you look at the real world around you, you will find that there are many objects around you, such as cars, dogs, people, etc. All these objects have their own state and behavior.

Take a dog as an example. Its status includes: name, breed, and color. Its behaviors include: barking, wagging its tail, and running.

Comparing real objects and software objects, they are very similar.

Software objects also have state and behavior. The state of a software object is its attribute, and its behavior is reflected through methods.

In software development, methods operate on changes in the internal state of objects, and mutual calls between objects are also completed through methods.

Classes in Java

Classes can be seen as templates for creating Java objects.

Let’s understand the definition of a class in Java through the following simple class:

public class Dog{
  String breed;
  int age;
  String color;
  void barking(){
  }
 
  void hungry(){
  }
 
  void sleeping(){
  }
}

A class can contain the following types of variables:

  • Local variables: Variables defined in methods, constructors or statement blocks are called local variables. Variable declaration and initialization are all in methods. After the method ends, the variables will be automatically destroyed.

  • Member variables: Member variables are variables defined in the class and outside the method body. Such variables are instantiated when the object is created. Member variables can be accessed by methods, constructors, and statement blocks of a specific class.

  • Class variables: Class variables are also declared in the class, outside the method body, but must be declared as static type.

A class can have multiple methods. In the above example: barking(), hungry() and sleeping() are all methods of the Dog class.

Constructor method

Every class has a constructor method. If no constructor is explicitly defined for a class, the Java compiler will provide a default constructor for the class.

When creating an object, at least one constructor must be called. The name of the constructor must be the same as the class. A class can have multiple constructors.

The following is an example of a constructor method:

public class Puppy{
    public Puppy(){
    }
 
    public Puppy(String name){
        // 这个构造器仅有一个参数:name
    }
}

Creating objects

Objects are created based on classes. In Java, use the keyword new to create a new object. Creating an object requires the following three steps:

  • Declaration: Declare an object, including the object name and object type.

  • Instantiation: Use the keyword new to create an object.

  • Initialization: When using new to create an object, the constructor method will be called to initialize the object.

The following is an example of creating an object:

public class Puppy{
   public Puppy(String name){
      //这个构造器仅有一个参数:name
      System.out.println("小狗的名字是 : " + name ); 
   }
   public static void main(String []args){
      // 下面的语句将创建一个Puppy对象
      Puppy myPuppy = new Puppy( "tommy" );
   }
}

Compile and run the above program, the following results will be printed:

小狗的名字是 : tommy

Access instance Variables and methods

Access member variables and member methods through the created object, as follows:

/* 实例化对象 */
ObjectReference = new Constructor();
/* 访问类中的变量 */
ObjectReference.variableName;
/* 访问类中的方法 */
ObjectReference.MethodName();

Instance

The following example shows how to access instance variables and call Member method:

public class Puppy{
   int puppyAge;
   public Puppy(String name){
      // 这个构造器仅有一个参数:name
      System.out.println("小狗的名字是 : " + name ); 
   }
 
   public void setAge( int age ){
       puppyAge = age;
   }
 
   public int getAge( ){
       System.out.println("小狗的年龄为 : " + puppyAge ); 
       return puppyAge;
   }
 
   public static void main(String []args){
      /* 创建对象 */
      Puppy myPuppy = new Puppy( "tommy" );
      /* 通过方法来设定age */
      myPuppy.setAge( 2 );
      /* 调用另一个方法获取age */
      myPuppy.getAge( );
      /*你也可以像下面这样访问成员变量 */
      System.out.println("变量值 : " + myPuppy.puppyAge ); 
   }
}

Compile and run the above program to produce the following results:

小狗的名字是 : tommy
小狗的年龄为 : 2
变量值 : 2

Source file declaration rules

In the last part of this section, we will Learn the declaration rules for source files. Pay special attention to these rules when defining multiple classes in a source file and when there are import statements and package statements.

  • There can only be one public class in a source file

  • A source file can have multiple non-public classes

  • The name of the source file should be consistent with the class name of the public class. For example: the class name of the public class in the source file is Employee, then the source file should be named Employee.java.

  • If a class is defined in a package, the package statement should be on the first line of the source file.

  • If the source file contains an import statement, it should be placed between the package statement and the class definition. If there is no package statement, the import statement should be first in the source file.

  • import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。

类有若干种访问级别,并且类也分不同的类型:抽象类和final类等。这些将在访问控制章节介绍。

除了上面提到的几种类型,Java还有一些特殊的类,如:内部类、匿名类。


Java包

包主要用来对类和接口进行分类。当开发Java程序时,可能编写成百上千的类,因此很有必要对类和接口进行分类。

Import语句

在Java中,如果给出一个完整的限定名,包括包名、类名,那么Java编译器就可以很容易地定位到源代码或者类。Import语句就是用来提供一个合理的路径,使得编译器可以找到某个类。

例如,下面的命令行将会命令编译器载入java_installation/java/io路径下的所有类

import java.io.*;
Employee.java 文件代码:
import java.io.*;
 
public class Employee{
   String name;
   int age;
   String designation;
   double salary;
   // Employee 类的构造器
   public Employee(String name){
      this.name = name;
   }
   // 设置age的值
   public void empAge(int empAge){
      age =  empAge;
   }
   /* 设置designation的值*/
   public void empDesignation(String empDesig){
      designation = empDesig;
   }
   /* 设置salary的值*/
   public void empSalary(double empSalary){
      salary = empSalary;
   }
   /* 打印信息 */
   public void printEmployee(){
      System.out.println("名字:"+ name );
      System.out.println("年龄:" + age );
      System.out.println("职位:" + designation );
      System.out.println("薪水:" + salary);
   }
}

程序都是从main方法开始执行。为了能运行这个程序,必须包含main方法并且创建一个实例对象。

下面给出EmployeeTest类,该类实例化2个 Employee 类的实例,并调用方法设置变量的值。

将下面的代码保存在 EmployeeTest.java文件中。

EmployeeTest.java 文件代码:
import java.io.*;
public class EmployeeTest{
 
   public static void main(String []args){
      /* 使用构造器创建两个对象 */
      Employee empOne = new Employee("RUNOOB1");
      Employee empTwo = new Employee("RUNOOB2");
 
      // 调用这两个对象的成员方法
      empOne.empAge(26);
      empOne.empDesignation("高级程序员");
      empOne.empSalary(1000);
      empOne.printEmployee();
 
      empTwo.empAge(21);
      empTwo.empDesignation("菜鸟程序员");
      empTwo.empSalary(500);
      empTwo.printEmployee();
   }
}

编译这两个文件并且运行 EmployeeTest 类,可以看到如下结果:

$ javac EmployeeTest.java
$ java EmployeeTest 
名字:RUNOOB1
年龄:26
职位:高级程序员
薪水:1000.0
名字:RUNOOB2
年龄:21
职位:菜鸟程序员
薪水:500.0

 相关推荐:

JAVA 入坑教程 | 对象和类

对Java的面对对象编程中对象和引用以及内部类的理解

The above is the detailed content of The latest method of distinguishing between classes and objects in Java, take it away now.. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn