黑马程序员技术交流社区

标题: java 基础知识-----方法 [打印本页]

作者: 满面春风    时间: 2014-5-11 19:33
标题: java 基础知识-----方法
方法:就是一段可以重复调用的代码段;一个方法可以接受一个数组或者返回一个数组,但是在接受数组的时候一定要注意,数组是引用数据类型,所以方法中对数组所做的一切修改最终都会被保留下来;
方法调用过程:

1.为被调用方法分配临时存储空间
2.将实参复制一份传给形参
3.跳入被调用方法中执行
4.方法体执行完成或遇到return语句,返回主方法,同时被调用方法的临时存储空间被收回

抽象方法:

构造方法:一个用来初始化对象的一个方法,在每个类中都存在一个构造方法。构造方法的主要目的是为类中属性初始化;所有的构造方法应该是对象操作前最早调用的;如果一个类中没有明确声明一个构造方法,则会自动生成一个无参的什么都不做的构造方法;当使用关键字new时才会调用类中的构造方法;
      要求:构造方法名称与类名称一致
             构造方法定义没有返回值类型的声明
             不能在构造方法中使用return返回一个内容
             用new +构造方法来创建一个新的对象

构造方法私有化-单例设计,一个类只能产生一个实例化对象;实现的核心:一个类中必须有构造方法,如果将构造方法私有化之后,那么外部无法产生新的实例化对象了;

重载:指的是方法名称相同,但是参数的类型和个数不同
方法名相同,参数列表不同
        参数列表:1.参数类型 2.参数个数
        系统会根据调用时传递的参数自动找到匹配的同名方法进行调用

覆写:发生在继承的关系中,子类覆写了父类中的相关方法,子类定义了与父类同名的方法,成为方法的覆写;在方法覆写时候注意:被覆写的方法不能拥有比子类更加严格的访问权限;访问权限 private<default<public

  在使用子类实例化对象调用类中被覆写过的方法时,调用的永远是被覆写过的操作,永远不是覆写,而是从新定义;
  
如果希望调用父类中被子类覆写过的方法,则只能通过super方法()形式调用;

属性的覆盖,子类中声明了父类中同名的方法成为覆盖,但从实际的开发来讲,属性基本上属于private类型,所以覆盖这种概念根本不存在

调用
  在使用递归操作的时候一定要注意递归操作要有明确的截止条件,否则会出现异常;

3.        关键字关键字列表:
abstract     boolean     break     byte     case      catch     char    class     continue     default     do      double  else     extends     enum     false      final       finally  float       for      if    implements     import    instanceof   int      interface     long      native      new     null   package     private     protected    public    return   short  static     super     switch     synchronized     this    throw    throws    transient    true    try    void     volatile   while
Java 中   true   false  不是关键字,而是boolean类型的字面量
所有的关键字都是小写,friendly,sizeof不是java的关键字
Super:
        1.调用父类的方法或属性,前提是方法和属性在子类中是可见的
        2.super()调用父类中的无参构造
        3.在调用父类构造方法的 时候必须放在第一句

Abstract:abstract类:
        1.如果一个方法没有方法体,那么该方法一定为abstract方法
        2.如果一个类中有一个abstract的方法,那么该类一定为abstract类
        3.abstract类不能被实例化
           Abstract a = new MyClass();//MyClass extends Abstract

Final:
声明类:声明的类不能有子类
声明方法:声明的方法不能被子类覆写
声明变量:声明的变量就称为常量,常量是不可以修改的

    在java中如果使用final声明一个常量的话,怎常量的标示符必须全部大写   使用public static final 声明的常量称为全局常量

This:
可以表示当前对象;通过this.属性表示当前类中的属性;通过this.方法()表示当前类的方法;通过this()可以调用本类中的其他构造方法,但是要求至少有一个构造方法中没有使用this(),而此构造方法将作为调用的出口,一般这个出口都会使用无参构造完成;而且调用时this()要放在构造方法的首行

Static:1.修饰变量,变量被所有实例所共享
        2.修饰方法,方法内不可以引用非静态成员;但是非静态方法可以引用静态成员
使用static关键字可以声明全局变量,所有对象共同拥有
Static属性或方法可以直接通过类名称调用
Static方法只能调用static属性方法,而不能调用非static的属性或方法
静态属性和方法可以在没有实例化对象的时候调用。使用static可以统计一个类产生了多少个实例化对象,因为static的属性是所有对象共享的;在开发中还可以使用static进行自动命名操作;
Throws:在程序中的方法声明处可以使用throws关键字,使用此关键字的最大好处是:在方法中不处理任何的异常,而是交给调用处处理;
   在程序中可以使用throw关键字人为的抛出一个异常,在异常的处理中,实际上每次产生异常的时候都产生了一个异常类的实例化对象,那么此时也可以通过抛出异常对象的方式完成
   异常处理的其他操作;NumberFormatException 是RuntimeException 的子类那么也就是说只要是RuntimeException的异常对象 虽然使用了throws 但是在程序中也可以不使用 try…catch 进行处理
  一个类只要继承了Exception则就表示一个自定义的异常,当发现系统中提供的异常类不够时就可以这样做;
assert:表示断言,就是表示说当程序执行到某条语句之后,其结果肯定是固定值;
4.保留字:asser enum const goto

作者: tc4892998    时间: 2014-5-11 21:30
感谢分享!
作者: GGdog    时间: 2014-5-11 22:11
论坛里面有很多朋友都分享类似这样的文档,你也可以下载一份,有的讲的很详细,对学习基础帮助很大:lol
作者: ς高眼光の目标    时间: 2014-5-12 02:06
不错           
作者: 孟凡超    时间: 2014-5-12 09:05
看了。。。。。。
作者: 郑云斌    时间: 2014-5-12 09:50
学习了,这对面试应该会有所帮助
作者: jinef    时间: 2014-5-14 23:41
留名,改天再看




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2