JAVA入门到精通-第7讲-成员方法-构造方法

1167156-20181130145142970-2092276745.png
 方法的声明没有函数体;
 void 不需要return; 其他的如int 是需要return的;

1167156-20181130145143851-486912790.png
  1167156-20181130145144812-1227396209.png
    2.3默认是double类型的,把double的数强行传给float类型的;

1167156-20181130145145851-1203373213.png

  1167156-20181130145147783-520931446.png
 转置:横坐标和纵坐标转换;

1167156-20181130145149025-993189604.png
 
1167156-20181130145149847-834313660.png
  1167156-20181130145150752-1887582318.png
 
  构造方法的主要用处是初始化你的成员属性(变量);
   初始化不需要. 点,会自动初始化
   通过 构造方法 在类中直接创建;
  1167156-20181130145151362-74643180.png
 
1167156-20181130145151659-1806004419.png
在没有构造方法的时候,就需要成员符号,点号。
1167156-20181130145151950-154259438.png
  1167156-20181130145152259-1977055134.png
你调用哪个构造方法,取决于参数值;
  1167156-20181130145152540-1387050567.png
 
1167156-20181130145152899-2040422225.png
  1167156-20181130145153312-984754466.png
 写出来别人覆盖不了;不写,被后面的覆盖了;

1167156-20181130145153792-1875185008.png
  1167156-20181130145154240-546042205.png
 

 

--类的成员方法(函数)--如何理解

如何理解方法这个概念,给大家举个通俗的示例:

程序员调用方法:给方法必要的输入,方法返回结果。

 

类的成员方法--声明

public int test(int a);/*方法声明*/

这句话的作用是声明该方法,声明的格式为:

    访问修饰符 数据类型 函数名(参数列表);

在给Person类添加add方法的例题中,我们看到的关键字return,它的功能是把表达式的值返回的值返回给主调函数的方法。

    return 表达式;

 

类的成员方法(函数)--特别说明

1、方法的参数列表可以是多个

案例:在Person类中编写一个成员方法,从键盘输入三个数,返回最大的那个数。

参数列表可以是多个,并且数据类型可以是任意的类型int float double char..

    访问修饰符 返回数据类型 函数名(参数列表){

       语句; //函数主体

    }

 

2、方法可以没有返回值

案例:编写一个函数,从控制台输入一个整数打印出对应的金字塔。

返回类型可以是任意的数据类型(int,float,double,char..)也可以没有返回值void表示没有返回值

    访问修饰符 返回数据类型 函数名(形参列表){

       语句; //函数主体

    }

 

类的成员方法(函数)--小练习

案例:编写一个成员函数,从键盘输入一个整数(1-9),打印出对应的乘法表[Demo110.java]

//实例键盘输入打印乘法表[Demo110.java] import java.io.*; public class Demo110{ public static void main(String []args){ Cfb jiu=new Cfb(); jiu.cf(); } } class Cfb{ public void cf(){ try{ //输入流,从键盘接收数 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); //给出提示 System.out.println("请输入1-9,按0退出:"); //从控制台读取一行数据 String a1=br.readLine(); //把String转为int int num1=Integer.decode(a1); for(int i=1;i<=num1;i++){ for(int j=1;j<=i;j++){ System.out.print(i+"×"+j+"="+(i*j)+"\t"); } System.out.println(); } }catch(Exception e){ e.printStackTrace(); } } }
31
 
1
//实例键盘输入打印乘法表[Demo110.java]
2
import java.io.*;
3
public class Demo110{
4
    public static void main(String []args){
5
        Cfb jiu=new Cfb();
6
            jiu.cf();
7
    }
8
}
9
class Cfb{
10
    public void cf(){
11
        try{
12
        //输入流,从键盘接收数
13
        InputStreamReader isr=new InputStreamReader(System.in);
14
        BufferedReader br=new BufferedReader(isr);
15
        //给出提示
16
        System.out.println("请输入1-9,按0退出:");
17
        //从控制台读取一行数据
18
        String a1=br.readLine();
19
        //把String转为int
20
        int num1=Integer.decode(a1);
21
            for(int i=1;i<=num1;i++){
22
                for(int j=1;j<=i;j++){
23
                    System.out.print(i+"×"+j+"="+(i*j)+"\t");
24
                }
25
                System.out.println();          
26
            }
27
        }catch(Exception e){
28
          e.printStackTrace();
29
         }
30
    }
31
}
1167156-20181130145154797-2065840502.png
 

案例:编写函数,使给定的一个二维数组(3×3)转置

 

类定义的完善

在介绍了成员方法后,我们类的定义就可以完善一步:

class 类名{             class 类名{               待定

成员变量;             成员变量;                   

}                       成员方法;

                        }

 

小结:1.先设计类;2.然后根据类创建对象。

小练习:

1、设计计算机类,要求如下:[Demo109.java]

属性:品牌(Brand)、颜色(Color)cpu型号(CPU)、内存容量(Memory)、硬盘大小(Harddisk)、价格(Price)、工作状态(Work)

方法:打开(Open)、关闭(Close)、休眠(Sleep)

创建一个计算机对象,调用打开,关闭方法

/

/计算机类与对象的代码 import java.io.*;//加载IO流包 public class Demo109{ public static void main(String []args){ Computer Pc=new Computer(); Pc.Brand="品牌"; Pc.Color="颜色"; Pc.Cpu="Cpu型号"; Pc.Memory="内存容量"; Pc.Hd="硬盘容量"; Pc.Price="价格"; Pc.Work="工作状态"; try{ //输入流,从键盘接收数 InputStreamReader isr=new InputStreamReader(System.in); BufferedReader br=new BufferedReader(isr); //给出提示 System.out.println("请输入0-9控制机器"); //从控制台读取一行数据 String a1=br.readLine(); //把String转为float float num1=Float.parseFloat(a1); if(num1==0){Pc.open();} else if(num1==1){Pc.close();} else if(num1==2){Pc.sleep();} else if(num1==3){System.out.println(Pc.Brand);} else if(num1==4){System.out.println(Pc.Color);} else if(num1==5){System.out.println(Pc.Cpu);} else if(num1==6){System.out.println(Pc.Memory);} else if(num1==7){System.out.println(Pc.Hd);} else if(num1==8){System.out.println(Pc.Price);} else if(num1==9){System.out.println(Pc.Work);} else {System.out.println("输入错误!");} }catch(Exception e){ e.printStackTrace(); } } } class Computer{ String Brand; String Color; String Cpu; String Memory; String Hd; String Price; String Work; public void open(){ System.out.println("开机"); } public void close(){ System.out.println("关机"); } public void sleep(){ System.out.println("休眠"); } }
 
1
/计算机类与对象的代码
2
import java.io.*;//加载IO流包
3
public class Demo109{
4
    public static void main(String []args){
5
        Computer Pc=new Computer();
6
            Pc.Brand="品牌";
7
            Pc.Color="颜色";
8
            Pc.Cpu="Cpu型号";
9
            Pc.Memory="内存容量";
10
            Pc.Hd="硬盘容量";
11
            Pc.Price="价格";
12
            Pc.Work="工作状态";
13
            try{
14
            //输入流,从键盘接收数
15
            InputStreamReader isr=new InputStreamReader(System.in);
16
            BufferedReader br=new BufferedReader(isr);
17
            //给出提示
18
            System.out.println("请输入0-9控制机器");
19
            //从控制台读取一行数据
20
            String a1=br.readLine();
21
            //把String转为float
22
            float num1=Float.parseFloat(a1);
23
            if(num1==0){Pc.open();}
24
            else if(num1==1){Pc.close();}
25
            else if(num1==2){Pc.sleep();}
26
            else if(num1==3){System.out.println(Pc.Brand);}
27
            else if(num1==4){System.out.println(Pc.Color);}
28
            else if(num1==5){System.out.println(Pc.Cpu);}
29
            else if(num1==6){System.out.println(Pc.Memory);}
30
            else if(num1==7){System.out.println(Pc.Hd);}
31
            else if(num1==8){System.out.println(Pc.Price);}
32
            else if(num1==9){System.out.println(Pc.Work);}
33
            else {System.out.println("输入错误!");}
34
            }catch(Exception e){
35
            e.printStackTrace();
36
            }
37
    }
38
}
39
 
40
class Computer{
41
    String Brand;
42
    String Color;
43
    String Cpu;
44
    String Memory;
45
    String Hd;
46
    String Price;
47
    String Work;
48
    public void open(){
49
        System.out.println("开机");
50
    }
51
    public void close(){
52
        System.out.println("关机");
53
    }
54
    public void sleep(){
55
        System.out.println("休眠");
56
    }
57
}
1167156-20181130145155461-1899011451.png

1、 采用面向对象思想设计超级马里奥游戏人物

 

 

-------------------------------------------------------------------------------

 

2java面向对象编程(1)-构造方法(函数)

类的构造方法介绍

什么是构造方法呢?在回答这个问题之前,我们来看一个需求:前面我们在创建人类的对象时,是先把一个对象创建好后,再给他的年龄和姓名属性赋值,如果现在我要求,在创建人类的对象时,就直接指定这个对象的年龄和姓名,该怎么做?

           

你可以在定义类的时候,定义一个构造方法即可。

 

构造方法是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。它有几个特点:

1、方法名和类名相同

2、没有返回值

3、在创建一个类的新对象时,系统会自动的调用该类的构造方法完成对新对象的初始化。

特别说明:

一个类可以定义多个不同的构造方法。

//例人类构造方法[Demo111.java]

public class Demo111{

    public static void main(String []args){

        Person p1=new Person(12,"顺平");//给予不同的初始值,调用的构造方法不同,构造方法虽同名,但系统会根据初始值来选定构造方法。

    }

}

//定义一个人类

class Person{

    int age;

    String name;

    //默认构造方法

    public Person(){

    }

    //构造方法的主要用处是:初始化你的成员属性(变量)

    //构造方法

    public Person(int age,String name){

        System.out.println("我是构造1");

        age=age;

        name=name;

    }

    //构造方法2

    public Person(String name){

        System.out.println("我是构造2");

        name=name;

    }

}

 

类的默认构造方法

有些同志可能会问?亲爱的老师,我们在没有学习构造函数前不是也可以创建对象吗?

是这样的,如果程序员没有定义构造方法,系统会自动生成一个默认构造方法。比如PersonPerson (){};

当创建一个Person对象时Person per1=new Person();默认的构造函数就会被自动调用。

 

类的构造方法小结:

1、构造方法名和类名相同;

2、构造方法没有返回值;

3、主要作用是完成对新对象的初始化;

4、在创建新对象时,系统自动的调用该类的构造方法;

5、一个类可以有多个构造方法;

6、每个类都有一个默认的构造方法。

 

类定义的改进

在提出构造方法后,我们类的定义就应该更加完善了:

class 类名{     class 类名{     class 类名{

成员变量;       成员变量;       成员变量;

}             成员方法;     构造方法;     待定..

                }               成员方法

                                }







转载于:https://www.cnblogs.com/xuxaut-558/p/10044141.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值