• 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();

  • 相关阅读:
    技术沙龙.:主题为《代码解析Castle(IOC)应用实例 -开源CMS 系统Cuyahoga》
    Active Record和Domain Object + Dao
    SNMP++.NET 项目
    微软发布Windows Vista Tips and Tricks网站
    2007 Office System Video
    使用搜索引擎搜索结果
    我购买了一台acer笔记本
    有价值的杂志《MSDN杂志》中文版
    Spring2.0中文参考手册(中文版) [转自CSDN论坛]
    开源项目Generics.Net介绍
  • 原文地址:https://www.cnblogs.com/yuyufeng/p/5304032.html
Copyright © 2020-2023  润新知