zoukankan      html  css  js  c++  java
  • 方法与方法重载,方法重写

    方法是类或对象的行为特征的抽象,方法是类或对象最重要的组成部分。

    a构造方法:(可带参,可无参)

    ①该方法没有返回值

    ②该方法名必须和类名一致

    注:一个类中允许出现多个同名但不同参的方法,这种方法叫方法重载。方法重载与返回值和访问修饰符无关。

    每个类都有一个默认的无参构造方法,当有参构造方法时,默认无参的会被覆盖掉,要把无参方法写出来才能继续使用无参方法。

    方法重载:

    方法重载是让类以统一的方式处理不同类型数据的一种手段。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法。

     1 package  test;
     2 
     3 public class Student{
     4 
     5 String name;
     6 
     7 int age;
     8 
     9 //默认的无参构造方法
    10 
    11 public Student(){}
    12 
    13 //方法重载
    14 
    15 public Student(String name,int age){
    16 
    17      this.name=name;
    18 
    19      this.age=age;
    20 
    21 }
    22 
    23 }      

     方法重写:

    子类可以定义新的特征,当子类需要修改父类的一些方法进行扩展,增大功能,程序设计者常常把这样的一种操作方法称为重写,也叫称为覆写或覆盖。

    子类继承了父类的方法后,要对父类的方法进行改写 要求除了方法体之外,其他的必须一致(就近原则)

    1 public class PetAnimal {
    2     String name;//宠物名字
    3     int health;//健康值
    4     int intimacy;//亲密度    
    5     public void ShowInf(){        
    6         System.out.print("我的名字叫"+name+",健康值是"+health+",亲密度是"+intimacy+",");
    7     }
    8 
    9 }
     1 //继承PetAnimal父类
     2 public class Penguin extends PetAnimal{
     3     String sex;//性别
     4     //重写父类的ShowInf()方法,输出自己的性别变量
     5     public void ShowInf(){
     6                  System.out.print("我的性别是"+sex);
     8     }
     9 
    10 }

    方法重写与方法重载的区别

    static可以修饰:

    1:静态成员变量

     2:静态成员方法

    3:静态代码块

    4:静态内部类

    5:静态导包 

    注:实例方法中不能创建静态变量    

    static与非static的区别:

    ①         static修饰的成员是随着类的加载而加载(优先)

     *             static成员是随着对象的创建而加载

    ②            静态方法|静态代码块只能调用静态成员,非静态成员是不能直接调用的,创建对象(不能使用this关键字)

     *             非静态方法可以直接调用非静态成员,也可以调用静态成员.类的对象进行调用静态成员

     ③          静态成员对于多个对象而言是共享的

     *             非静态成员对于多个对象是彼此独立的

    不定长参数:

    语法: 类型...参数名

    ①参数的长度不一定(0-N)

    ②必须写在参数列表的末尾

    //不定长参数
    1
    public void test(int d,int...num){ 2 for(int i=0;i<num.length;i++){ 3 System.out.print(num[i]); 4 } 5 }

    递归函数:在一定程度上可以为循环

     *        自己调用自己本身的方法被称为递归函数

     *        *** 最重要的就是递归何时结束!

     1 //递归实现斐波那契数列
     2 //0 1 1 2 3 5 8 13 21
     3     public int rec(int num){        
     4         if(num==1){            
     5             return 0;
     6         }
     7         if(num==2){            
     8             return 1;
     9         }                                
    10         return rec(num-1)+rec(num-2);    
    11         
    12     }

    递归函数运行图解

  • 相关阅读:
    winform中利用正则表达式得到有效的电话/手机号
    winform运行时如何接受参数?(示例)
    [基础]Javascript中的继承示例代码
    [转]C#中"is" vs "as"
    Javascript数组常用方法[包含MS AJAX.NET的prototype扩展方法]示例
    linq学习笔记(一)
    用winform应用程序登录网站的解决方案
    [转贴]操纵自如--页面内的配合与通信
    .net3.0中的扩展方法(示例)
    window.location或window.open如何指定target?
  • 原文地址:https://www.cnblogs.com/TFE-HardView/p/10939856.html
Copyright © 2011-2022 走看看