zoukankan      html  css  js  c++  java
  • 面向对象编程(OOP)————类

    一.类的构造方法(构造函数)

          在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法。构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的,每当类实例化一个对象时,类都会自动调用构造方法。

     1. 构造方法的特点如下:  

        (1)构造方法的名称要与本类的名称相同;   

        (2)构造方法没有返回值,不用void;

        (3)如果没有自定义,就自动提供一个默认构造方法(无参数的构造方法);

        (4)主要作用就是初始化对象;

        (5)只在构造对象的时候调用。

          注意:在定义构造方法时,构造方法没有返回值,但这与普通没有返回值的方法不同,普通没有返回值的方法使用public  void  methodEx()这种形式进行定义,但构造方法并不需要void关键字进行修饰。

          构造方法的定义语法格式如下:

    1 public    book()
    2 {
    3       
    4       //...构造方法体     
    5 
    6 }
    构造方法

          public:构造方法修饰符;

          book:构造方法的名称。

          在构造方法中可以为成员变量赋值,这样当实例化一个本类的对象时,相应的成员变量也将被初始化。        

     1 package  org.hanqi.pn0120;
     2 
     3 public class Book {
     4     //构造方法
     5     //方法名和类名 一样 
     6     //对构造参数而言,没有返回值,不需要加void
     7     //只要自定义了构造方法,就不会自动添加默认构造方法
     8     Book()
     9     {
    10         //完成初始化
    11         name="默认书名";
    12     }
    13     Book(String bookname)
    14     {
    15         //初始化
    16         name=bookname;
    17     }
    18     Book(String name,String category)
    19     {
    20         //初始化
    21         this.name=name;
    22         //this关键字代表类的本身
    23         this.category=category;
    24     }
    25 }
    构造方法

    二.成员变量

        在Java语言中对象的属性称为成员变量,也可以称为属性。为了了解成员变量,首先定义一个图书类,成员变量对应于类对象的属性,在Book类中设置 name、category和content3个成员变量,分别对应于图书名、图书类别和图书内容这3个图书属性。

         语法:      修饰符  数据类型  变量名;

     1 package  org.hanqi.pn0120;
     2 
     3 public class Book {
     4            
     5                       //属性 成员变量
     6     //书名
     7     String name;
     8     //书的类别
     9     String category="其他";
    10     //内容
    11     String content="";//不是null
    12 }
    成员变量

        在Java语言中使用class关键字来定义类,Book是类的名称,同时在Book类中定义了3个成员变量,成员变量的类型可以设置为Java语言中合法的数据类型,其实成员变量就是普通的变量,可以为它设置初始值,也可以不为其设置,如果不设置初始值,则会有默认值。

    三.成员方法

        在Java语言中使用成员方法对应于类对象的行为。

        定义成员变量的语法格式:   

                 极限修饰符  返回值类型  方法名(参数类型  参数名){ 

                     ...//方法体

                      return  返回值;

             }

        成员方法的表现形式:

        1.没有返回值(void),没有传入参数()

        2.没有返回值,有参数(数据类型  参数名 )

        3.有返回值,没有传入参数():返回值类型   方法名(){return 返回的数据;}

        4.有返回值,有传入参数:返回值类型   方法名(传入数据类型  参数名){return 返回的数据;}

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

        成员方法的返回值可以是计算结果也可以是其他想要的数值、对象,返回值类型要与方法返回的值类型一致。

     1 //成員方法
     2     //方法的表现形式之一:没有返回值(void),没有传入参数()
     3     void print()
     4     {
     5         System.out.println("讀這本书的書名叫做《"+name+"》的書");
     6         System.out.println("我读的书的内容"+content);
     7     }
     8     
     9     //表现形式之二:没有返回值(void),有传入参数(数据类型 参数名)
    10     void write(String mycontent)
    11     {
    12         System.out.println("我写的内容:"+mycontent);
    13         
    14         if(content.length()>=1000)
    15         {
    16             return;
    17         }
    18         content +=mycontent;
    19         System.out.println("我写完之后的内容:"+content);
    20     }
    21     
    22     //表现形式之三:有返回值()没有传入参数
    23    String read()
    24     {
    25         //返回值  不光跳出循环,直接跳出方法
    26        return content;
    27        
    28     }
    29     
    30  //表现形式之四:有返回值,有传入参数
    31    //卖书
    32    //根据卖出的数量计算并返回钱数
    33    double sell(int count)
    34    {
    35        return (price*count);
    36    }
    成员方法

    四.定义方式

      1.class:修饰符 class 类名{ 构造方法;成员变量;成员方法;}

      2.package:定义在第一行,一般全小写,范围从大到小,对应目录结构.

    类的构造,以Book为例:

     1 package org.hanqi.pn0120;
     2 
     3 public class Test {
     4 
     5     public static void main(String[] args) {
     6         //构造一本书
     7         Book myBook=new Book("JAVA基础教程","java教程类");//默认构造方法
     8         
     9         //myBook.name="JAVA基础教程";
    10         System.out.println("类别="+myBook.category);
    11         
    12         myBook.content="教程类";
    13         
    14         //myBook.category="JAVA教程类";
    15         
    16         myBook.content="第一章";
    17         
    18         String str=myBook.read();//成员方法 
    19         
    20         System.out.println("读出的内容="+str);
    21         
    22         myBook.write("JAVA的发展史");
    23         
    24         str =myBook.read();
    25         
    26         int c=3;//卖出的本数
    27         
    28         System.out.println("读出的内容="+str);
    29         
    30         System.out.println("卖"+c+"本书的钱数"+myBook.sell(3));
    31 
    32         myBook.print();
    33         
    34         System.out.println();
    35         
    36         
    37         //第二本书
    38         
    39         Book myBook1=new Book();
    40         
    41         myBook1.name="战争与和平";
    42         
    43         myBook1.category="名著类";
    44         
    45         System.out.println("类别="+myBook1.category);
    46         
    47         myBook1.read();
    48         myBook1.print();
    49     }
    50     }
    51         
    52         
    53     
    Test
     1 package  org.hanqi.pn0120;
     2 
     3 public class Book {
     4     //构造方法
     5     //方法名和类名 一样 
     6     //对构造参数而言,没有返回值,不需要加void
     7     //只要自定义了构造方法,就不会自动添加默认构造方法
     8     Book()
     9     {
    10         //完成初始化
    11         name="默认书名";
    12     }
    13     Book(String bookname)
    14     {
    15         //初始化
    16         name=bookname;
    17     }
    18     Book(String name,String category)
    19     {
    20         //初始化
    21         this.name=name;
    22         //this关键字代表类的本身
    23         this.category=category;
    24     }
    25     //属性 成员变量
    26     //书名
    27     String name;
    28     //书的类别
    29     String category="其他";
    30     //内容
    31     String content="";//不是null
    32     //价格
    33     double price=10;
    34     //成員方法
    35     //方法的表现形式之一:没有返回值(void),没有传入参数()
    36     void print()
    37     {
    38         System.out.println("讀這本书的書名叫做《"+name+"》的書");
    39         System.out.println("我读的书的内容"+content);
    40     }
    41     
    42     //表现形式之二:没有返回值(void),有传入参数(数据类型 参数名)
    43     void write(String mycontent)
    44     {
    45         System.out.println("我写的内容:"+mycontent);
    46         
    47         if(content.length()>=1000)
    48         {
    49             return;
    50         }
    51         content +=mycontent;
    52         System.out.println("我写完之后的内容:"+content);
    53     }
    54     
    55     //表现形式之三:有返回值()没有传入参数
    56    String read()
    57     {
    58         //返回值  不光跳出循环,直接跳出方法
    59        return content;
    60        
    61     }
    62     
    63  //表现形式之四:有返回值,有传入参数
    64    //卖书
    65    //根据卖出的数量计算并返回钱数
    66    double sell(int count)
    67    {
    68        return (price*count);
    69    }
    70    
    71 
    72 
    73 }
    Book

  • 相关阅读:
    Crontab问题总结
    确定两个 Geometry 实例之间的关系
    Silverlight 多点触控(MultiTouch)
    在.NET中嵌入IronPython 交互
    Siebel集成OBI报表
    Silverlight XPS (PPT) Online
    Siebel Data Validation Manage 数据验证
    Siebel 附件清理
    Siebel 消息广播管理
    怎样创建一个.NET RIA Services Application (二)
  • 原文地址:https://www.cnblogs.com/arxk/p/5243476.html
Copyright © 2011-2022 走看看