Java函数


  一、方法基本定义格式:

  修饰符 返回值类型 方法名(函数类型 形式参数;函数类型 形式参数)
  {
  执行语句;
  return 返回值; //视返回值类型而定
  }

  注意:
  1.java中的修饰符分为类修饰符,字段修饰符,方法修饰符。根据功能的不同,主要分为以下几种。?
  *权限访问修饰符(可以用来修饰类、方法和字段)?
  public:对任何人都是可用的
  protected:继承的类可以访问以及和private一样的权限
  default:包访问权限,即在整个包内均可被访问
  private:除类型创建者和类型的内部方法之外的任何人都不能访问的元素

  *final修饰符?
  final的意思是不可变,可以修饰类、字段、方法。修饰类后类不能被扩展(extends),也就是不能被继承。修饰字段后字段的值不能被改变,因此如果有final修饰字段,应该对字段进行手动初始化。修饰方法后该方法不能被改变,也就是重写。
  ?
  *abstract修饰符?
  abstract是抽象的意思,用来修饰类和方法,修饰类后,该类为抽象类,不能被实例化,必需进行扩展。修饰方法后,该方法为抽象方法必须被子类重写(override)。?

  *static修饰符?
  static用来修饰内部类,方法,字段。修饰内部类说明该内部类属于外部类而不属于外部类的某个实例。修饰字段说明该字段属于类而不属于类实例。修饰方法说明该方法属于类而不属于类实例

  例://定义加法函数
  public static int add(int a, int b)
  {
  ?return a+b;
  }
  ========================================================================================
  下面要说方法的重写的重载就需要了解Java中继承的概念

  继承:这么理解 从祖宗到现在血缘关系的延续

  在继承中会有几个标志性关键字:
  extend:继承一个父类 用在类名后
  super:用来引用当前对象的父类,实现对父类成员的访问。
  this:指向自己的引用。

  注意:所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承object祖先类

  例如:
  class Animal
  {
  public void eat()
  {
  System.out.println("animal : eat");
  }
  }

  class Dog extends Animal
  {
  public void eat()
  {
  System.out.println("dog : eat");
  }
  void eatTest()
  {
  this.eat(); // this 调用自己的方法
  super.eat(); // super 调用父类方法
  }
  }

  最后说一下继承的特性:
  1.子类拥有父类非private的属性,方法。
  2.子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
  3.子类可以用自己的方式实现父类的方法。
  4.Java的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如A类继承B类,B类继承C类(可深不可广,滥交不提倡)
  5.提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系)。

  注意:implement也可以继承 但在我多理解为实现 意思是接口的实现和传递 这个关键字用于接口 下次再写
  ========================================================================================
  二、方法的重写(override)
  解释:就是覆盖 需要除你所写的执行代码之外 全部克隆

  注意:
  1.参数列表,返回类型必须完全与被重写方法的相同
  2.父类的成员方法只能被它的子类重写
  3.若方法不能被继承那么也不能被重写(声明为final的方法不能被重写)
  4.访问权限不能比父类中被重写的方法的访问权限更低,异常的抛出也不能出现新的强制性异常(功高盖主是不提倡的,除非你是主)
  5.构造方法不能被重写

  例如:
  class Animal
  {
  public void play()
  {
  System.out.println("动物可以玩");
  }
  }

  class Dog extends Animal
  {
  public void play()
  {
  System.out.println("狗可以跑");
  }
  public void bark()
  {
  System.out.println("狗可以叫");
  }
  }

  ========================================================================================
  三、方法的重载(overload)
  解析:虽然我和你方法名相同,但是我就是独一无二。构造器的重载是典型。
  注意:
  1.被重载的方法必须改变参数列表(参数个数或类型不一样)
  2.方法能够在同一个类中或者在一个子类中被重载
  3.无法以返回值类型作为重载函数的区分标准

  例如:
  public class Overloading
  {
  public int test(int a,int b)
  {
  System.out.println(a + "," + b);
  }

  public void test(int a)
  {
  System.out.println(a);
  }
  }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值