码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象编程(OOP)————类

时间:2016-03-05 01:37:07      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:

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

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

 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

技术分享

 

面向对象编程(OOP)————类

标签:

原文地址:http://www.cnblogs.com/arxk/p/5243476.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!