美文网首页
Java语言——类

Java语言——类

作者: 开心糖果的夏天 | 来源:发表于2017-06-05 14:26 被阅读24次

    在Java语言中经常提到类和对象,实质上可以将类看作是对象的载体,它定义了对象所具有的功能。面向对象程序设计具有以下特点:封装性、继承性和多态性。


    Java语言

    一、类

    1.成员变量

    在Java中对象的属性也称为成员变量。成员变量声明在类体中,局部变量声明在方法体中。示例代码如下:

    package com.example;
    
    public class Book {
       private String name;//定义一个String型的成员变量
       public String getName(){//定义一个getName()方法
           int id=0;//局部变量
           setName("java");//调用类中其他方法
           return id+this.name;//设置方法返回值
       }
       private void setName(String name){
           this.name=name;
       }
       public Book getBook(){
           return this;//返回Book类引用
       }
    }
    

    2.成员方法

    在Java语言中使用成员方法对应于类对象的行为。上述代码为例,Book类中包含了getName()和setName()两个方法。定义成员方法的语法格式如下:

    权限修饰符  返回值类型  方法名(参数类型  参数名){
                  ...//方法体
                 return  返回值;
    }
    

    一个成员方法可以有参数,这个参数可以是对象也可以是基本数据类型的变量,同时成员方法有返回值和不返回任何值的选择,如果方法需要返回值可以在方法体中使用return关键字,使用这个关键字后,方法的执行将被终止。在成员方法中可以调用其他成员方法和类成员变量。如果一个方法中含有与成员变量同名的局部变量,则方法中对这个变量的访问以局部变量进行。

    3.权限修饰符

    Java中的权限修饰符主要包括private、public和protected,这些修饰符控制着对类和类的成员变量以及成员方法的访问。如下图所示:

    Java语言中的修饰符权限

    如果一个类的成员变量或成员方法被修饰为private,则该成员变量只能在本类中被使用,在子类中是不可见的,并且对其他包的类也是不可见的。如果将类的成员变量和成员方法的访问权限设置为public,那么除了可以在本类使用这些数据之外,还可以在子类和其他包的类中使用。如果一个类的访问权限被设置为private,这个类将隐藏其内的所有数据,以免用户直接访问它。

    4.局部变量

    如果在成员方法中定义一个变量,那么这个变量被称为局部变量。如下代码所示,getName()方法中的id变量即为局部变量。实际上方法中的形参也可以作为一个局部变量,如在定义setName(String name)方法时,String name这个形参就被看作是局部变量。局部变量是在方法被执行时创建,在方法执行结束时销毁。局部变量在使用时必须进行赋值操作或被初始化,否则会出现编译错误。

       public String getName(){//定义一个getName()方法
           int id=0;//局部变量
           setName("java");//调用类中其他方法
           return id+this.name;//设置方法返回值
       }
    

    5.局部变量的有效范围

    局部变量的有效范围又可以称为变量的作用域,局部变量的有效范围从该变量的声明开始到该变量的结束为止。如下图所示:

    局部变量的作用范围

    6.this关键字

      private void setName(String name){
           this.name=name;
       }
    

    在上述代码中,成员变量与setName()方法中的形参的名称相同,都为name。在Java语言中,规定使用this关键字来代表本类对象的引用,this关键字被隐式的用于引用对象的成员变量和方法。this可以调用成员变量和成员方法,但在Java语言中最常规的调用方式是使用“对象.成员变量”或“对象.成员方法”进行调用。

    二、类的构造方法

    构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时,类都会自动调用构造方法。构造方法的特点如下:
    (1)构造方法没有返回值。
    (2)构造方法的名称要与本类的名称相同。
    构造方法的定义语法格式如下:

    public book(){
      //...构造方法体
    }
    

    public:构造方法修饰符。
    book:构造方法的名称。
    在构造方法中可以为成员变量赋值,这样当实例化一个本类对象时,相应的成员变量也将被赋值。如果类中没有明确定义构造方法,编译器会自动创建一个不带参数的默认构造方法。

    三、静态变量、常量和方法

    由static修饰的变量、常量和方法被称作静态变量、常量和方法。被声明为static的变量、常量和方法被称为静态成员。静态成员属于类所有,区别于个别对象,可以在本类或其他类使用类名和“.”运算符调用静态成员。语法如下:

    类名.静态类成员
    

    示例代码如下:

    package com.example;
    
    public class StaticTest {
     static double PI=3.1415;//在类中定义静态常量
     static int id;//在类中定义静态变量
     public static void method1(){//在类中定义静态方法
         //doSomething
     }
     public void method2(){//在类中定义非静态方法
         System.out.println(StaticTest.PI);//调用静态常量
         System.out.println(StaticTest.id);//调用静态变量
         StaticTest.method1();//调用静态方法
     }
    }
    

    在Java语言中对静态方法有两点规定:
    (1)在静态方法中不可以使用this关键字。
    (2)在静态方法中不可以直接调用非静态方法。

    四、类的主方法

    主方法是类的入口点,它定义了程序从何处开始;主方法提供对程序流向的控制,Java编译器通过主方法来执行程序。主方法的语法如下:

    public static void main(String[] args){
    //方法体
    }
    

    主方法具有以下特性:
    (1)主方法是静态的,所以如要直接在主方法中调用其他方法,那该方法必须也是静态的。
    (2)主方法没有返回值。
    (3)主方法的形参为数组。其中args[0]~args[n]分别代表程序的第一个参数到第n个参数,可以使用args.length获取参数的个数。

    学习是一件很快乐的事,这种快乐来自于你的思考。完成一项学习任务固然重要,但更重要的是在完成的过程中学到了什么,掌握了什么,遇到一些什么问题,为什么会出现这种问题,根源是什么,都有哪些解决方案,什么样的情况适合这个方案。只有在不断的思考,你的能力才会有所提升!

    相关文章

      网友评论

          本文标题:Java语言——类

          本文链接:https://www.haomeiwen.com/subject/jstvxxtx.html