Java学习第四天

 

目标

方法

面向对象入门

一、方法

方法: 功能点,集中起来,命名方便使用和修改,可以理解为 : 手机手机后面有个卡槽,放具体的卡,手机才能使用。

作用

1)、可以避免main方法过于臃肿

2)、方便分析业务逻辑–>封装

定义

修饰符  void|返回值类型方法名([形参列表]){

         //代码块 return

}

示例

for(int i=0;i<10;i++){

System.out.println(“helloWorld…”);
}

放入到有名字的方法中:

可以归类为四种:

无返回无形参、无返回有形参、有返回无形参、有返回有形参:

//定义了一个方法方法的声明无形参无返回值

    publicstaticvoid myPrint() {

       for(inti=0;i<10;i++){

           System.out.println("helloWorld…");

       }

    }

//定义了一个方法方法的声明有形参无返回值

    publicstaticvoid myPrint(int num ) {

       //打印整数

       System.out.println(num+"输出了....");

    }

//定义了一个方法方法的声明无形参有返回值

    publicstaticint add() {

       return 5+2;

    }//定义了一个方法方法的声明有形参有返回值

    publicstaticint sum(inta, intb ) {

       //打印两个任意正整数之和

       System.out.println((a+b)+"之和....");

        //返回之和

       returna+b;

    }

调用

调用就是使用, [接收=]方法名([实参]),存在就近最优原则

实参和形参

实参就是具体的卡,形参: 卡槽

* 方法的声明与调用
* 1、声明格式(现阶段)
* public static void|返回值类型 方法名([形参列表]){
* //代码块
* }
* 1)、位置只能在类中
* 2)、方法不能嵌套
* 3)、方法的定义位置与调用顺序无关
* 2、方法的调用
* [接收变量=]方法名([实参列表]);

思考4个点

1、  根据方法的功能,确定方法的名字

2、  该方法是否需要外界数据的参与运算,如果需要,定义形参

3、  该方法执行完后对下一步操作是否存在影响,即调用处是否需要该方法的结果,如果需要,return 返回值

4、  该方法是否为static、成员

return 关键字

1、返回跳出方法,在所在的作用域内{} 不能再出现代码

2、如果存在返回值类型,必须存在return ,返回值,所有的情况下必须存在返回值。

3、如果没有返回值类型即void,可以存在return ,不能返回值,有选择的提前跳出方法。

方法的签名

组成:由方法名+形参列表 (类型顺序个数)

作用:在一个类中的唯一性,避免重复

在一个类中,方法名可以重复,但是方法签名必须唯一。

//方法的签名: absolute(int)

    publicstaticint absoulte(intnum){ 

       if(num<0){

           return -num;     

}

       returnnum;

    }

方法的重载(overload)

两同三不同: 同一个类,方法名相同,签名不同 (形参类型个数顺序)

//方法的签名: add()

         public static int add(){

                   return 5+2;

         }

         //方法的签名: add(int)

         public static int add(int a){

                   return 5+a;

         }

         //方法的签名: add(int,int)

         public static int add(int a,int b){

                   return a+b;

         }

         //方法的签名: add(int,float)

         public static double add(int b,float a){

                   return a+b;

         }

         //方法的签名: add(float,int)

         public static double add(float b,int a){

                   return a+b;

         }

作用: 功能相同的参数不同,为了调用方便,将命名为相同的方法

递归(recursive)

方法自己调用自己,类似循环

1、  递归体: 重复调用

2、  递归头: 何时结束递归

递归耗内存

//自己调用自己

    publicstaticvoid myPrint(intnum){

        if(num>9){ //何时结束递归

            return ;

        }

        //递归体

        System.out.println(num);

        myPrint(num+1);

    }

二、面向对象

JAVA一切皆为对象,OOP(Object oriented programming)

类class

1、理解

抽象:抽出像的部分–>模板

复杂自定义的数据类型

2、编写类class : 数据(属性) +行为(方法)

模板

public class 类名{

 //成员属性

 public 类型属性名 [=初始值];

 //成员方法

public  返回类型|void 方法名([形参列表]){

   //方法体

}

}

如:

public class Cake {

    // 蛋糕的形状  //shape -->String

    public String shape;

    //  奶油的量  // cream  -->int

    publicintcream;

    //  鸡蛋的量  // eggs  -->int

    publicinteggs;

    //  水的量  //water  -->int

    publicintwater;

    //  烤制时间 //bake   -->String

    public String bake;

    //  其他配料  //others -->String

    public String others;

    //  制作过程  //makeCake()

   

    publicvoid makeCake(){

        System.out.println("使用了"+eggs+"个鸡蛋,用了"+bake+"时间,做出了"+shape+"形状的蛋糕");

    }

}

publicclass Angel {

    //名字

    public String name;

    //女孩  girl -->String

    public String girl;

    //翅膀  wing  -->String

    public String wing ="1对";

    //是否善良  goodness  -->boolean

    publicbooleangoodness;

   

    //帮助();  assist

    publicvoid assist(){

        System.out.println(name+"拯救学习java的码农们....");

    }

}

 

对象(Object)

活生生的实例,数据ànew 类型();

1、格式:

类型引用名|对象名 = new 类型();

new 类型();

2、访问成员属性|变量

存在对象才能访问,不存在对象发生NullPointerException

1)  、存储:引用名.属性 =值

2)  、取值:引用名.属性

3、访问成员方法

存在对象才能访问,不存在对象发生NullPointerException

调用方法: [接收变量=]引用名.方法([实参列表])

new Angel(); //没有引用的称之为匿名对象只能使用一次

       //创建了一个对象     angel 称之为引用变量,new Agel() -->对象

       Angel angel=new Angel();  

             

       //为属性赋值

       angel.girl ="女孩";

       angel.goodness =true;

       angel.wing = "1双";

      

       //调用方法

       angel.assist();

       //第二个引用变量,没有创建对象

       intb =0;

       Angel angel2 =null;

       //java.lang.NullPointerException -->只有引用没有创建对象

       //没有大盒子哪里来的小盒子

       //没有对象不能访问数据、调用方法

       angel2.girl ="女";

       //System.out.println(angel2.girl);

       //angel2.assist();

原文地址:https://www.cnblogs.com/yuyufeng/p/5304032.html