zoukankan      html  css  js  c++  java
  • 3.19对象和类

    3.19对象和类

    Java支持一下概念

    • 多态

    • 继承

    • 封装

    • 抽象

    • 对象

    • 实例

    • 方法

    • 重载


    本章重点研究对象和类的概念

    • 对象:对象是类的一个实例,有状态和行为

    • 类:一个模板,能描述一类对象的行为和状态

    如下图:


    Java中的对象

    • 现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。

    • 拿一条狗来举例,它的状态有:名字、品种、颜色,行为有:叫、摇尾巴和跑。

    • 对比现实对象和软件对象,它们之间十分相似。

    • 软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。

    • 在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。


    Java中的类

    创建类的实例:

    public class Dog{
       String bread;
       int size;
       String colour;
       int age;
       
       void eat(){
           
      }
       
       void run(){
           
      }
       
       void sleep(){
           
      }
       
       void name(){
           
      }
    }

    一个类可以包含以下类型变量:

    • 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。

    • 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。

    • 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。

    eat()、run()、sleep() 和 name() 都是 Dog 类的方法。


    构造方法

    特点:

    • 每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法

    • 创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。

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

    象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象

    • 声明:声明一个对象,包括对象名称和对象类型。

    • 实例化:使用关键字 new 来创建一个对象。

    • 初始化:使用 new 创建对象时,会调用构造方法初始化对象。

    实例:

    public class Puppy {
       public Puppy(String name){
           //这个构造器仅有一个参数:name
           System.out.print("The dog's name is :" + name);
      }
       public static void main(String arguments[]){
           //下面语句将创建一个Puppy的对象
           Puppy myPuppy = new Puppy("Harden");
      }
    }

    访问实例变量和方法

    语法:

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

    实例:

    public class Puppy {
       public Puppy(String name){
           //这个构造器仅有一个参数:name
           System.out.print("The dog's name is :" + name);
      }
    //   public static void main(String arguments[]){
    //       //下面语句将创建一个Puppy的对象
    //       Puppy myPuppy = new Puppy("Harden");
    //   }

       int puppyAge;
       public void setPuppyAge( int age ){
           puppyAge = age;
    //       return puppyAge;
      }

    //   public Puppy(int setPuppyAge){
    //       this.setPuppyAge( 1 );
    //   }

       public int getPuppyAge( ){
           System.out.println("The dog's age is " + puppyAge);
           return this.puppyAge;
      }

       public Puppy(int puppyAge) {
           this.puppyAge = puppyAge;
      }

       public static void main(String[] arguments){
           /*创建对象*/
           Puppy myPuppy = new Puppy("Paul");
           /*通过方法来设定age*/
           myPuppy.setPuppyAge( 2 );
           /*调用另一个方法获取age*/
           myPuppy.getPuppyAge( );
           /*获取构造器的值*/
           Puppy myPuppyAge = new Puppy(myPuppy.getPuppyAge());
           /*也可以像下面这样访问成员变量*/
           System.out.println("variable_value :" + myPuppy.puppyAge);
      }
    }

     


    源文件声明规则

    当一个源文件中定义多个类,并且有import语句和package语句时要注意

    • 一个源文件中只能有一个public类

    • 一个源文件可以有多个非public类

    • 源文件的名称应该和 public 类的类名保持一致。例如:源文件中 public 类的类名是 Employee,那么源文件应该命名为Employee.java。

    • 如果一个类定义在某个包中,那么 package 语句应该在源文件的首行。

    • 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间。如果没有 package 语句,那么 import 语句应该在源文件中最前面。

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


    Java包

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


    import语句

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

    实例:

    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:" + name);
           System.out.println(("age:" + age));
           System.out.println("job:" + designation);
           System.out.println("salary:" + salary);
      }

       public static void main(String[] args){
           /* 使用构造器创建两个对象 */
           Employee empOne = new Employee("James");
           Employee empTwo = new Employee("Harden");

           // 调用这两个对象的成员方法
           empOne.empAge(26);
           empOne.empDesignation("高级程序员");
           empOne.empSalary(1000);
           empOne.printEmployee();

           empTwo.empAge(21);
           empTwo.empDesignation("菜鸟程序员");
           empTwo.empSalary(500);
           empTwo.printEmployee();
      }
    }

     

    It's a lonely road!!!
  • 相关阅读:
    Jmeter之http性能测试实战 非GUI模式压测 NON-GUI模式 结果解析TPS——干货(十一)
    UI Recorder 自动化测试 回归原理(九)
    UI Recorder 自动化测试 录制原理(八)
    UI Recorder 自动化测试 整体架构(七)
    UI Recorder 自动化测试 配置项(六)
    UI Recorder 自动化测试 工具栏使用(五)
    UI Recorder 自动化测试 回归测试(四)
    UI Recorder 自动化测试 录制(三)
    UI Recorder 自动化测试工具安装问题疑难杂症解决(二)
    UI Recorder 自动化测试安装教程(一)
  • 原文地址:https://www.cnblogs.com/JunkingBoy/p/14564782.html
Copyright © 2011-2022 走看看