JAVA笔记:方法

方法定义:

        【修饰符】 返回类型 方法名(形参列表)

        {

        }

       【修饰符】:因为方法的上一级单元为类,所以修饰符可以public、protected(父子类访问权限)、private(本类访问权限),默认(包访问权限)

                              static:此方法为类方法,在类方法中不能够访问实例成员,只能够访问类成员,但可以通过new方式构建本类实例。

                              final:不可改变,防止子类重写父类的方法,从而改变程序的执行逻辑。

                              abstract:抽象方法,没有执行体,与空方法是有区别的,空方法有执行体,只不顾过执行体为空(也就是不做任何事情)。

       【返回类型】:基本类型、引用类型、void类型

       【方法名】:第一个单词首字母小写,其他单词首字母大写,建议使用动词开头。

       【参数】:  

                              基本类型的参数传递:值拷贝传递。

                              引用类型的参数传递:值拷贝传递,只不过传递的是指向对象的地址,所以方法内对对象的操作会影响对象的数据。

                              可变形参:必须定义在最后一个变量,并且在类型后面加“...”,相等于此类型的数组。

                                         例子: public test(int a, String .... books){}

                                                      可以通过 test(5, "1", "2", "3");或通过 test(5, new String[]{"1", "2", "3"}方式调用。


a.方法一般概念:

         方法不能够独立定义,方法只能在类体里定义

         从逻辑意义上看,方法要么属于类,要么属于实例

         永远不能独立执行方法,执行方法只能通过类或实例作为调用者使用。

              

b.方法调用:

          类方法:类名,方法名

          普通方法:this.方法名、实例.方法名、super.方法名(调用父类的实现)


c.方法重载:调用者相同、方法名相同、形参列表不同。

 

d.方法重写:方法名相同、形参列表相同、子类的返回类型要么变小或者相等,子类的异常要么变小或者相等,子类的访问权限要么相等或者变大

                   方法重写必须发生在父子类之间。

 

e.多态性:编译时期类型:该变量定义时使用的类型决定。运行时期类型:实际赋给此变量的类型决定。如果编译时期的类型与运行时期的类型

                不一致时,会导致此方法的多态性,从而改变程序的执行逻辑结构,增加程序的灵活性。

 

f.类型转换:

         基本类型转换:整数、字符、浮点类型之间转换

        引用类型的转换:父子类型之间的转换,向上类型转换自动进行的,向下类型转换强制(type)变量。

        可以通过instanceof来判断是否可以进行类型转换,保证程序的正确性,否则运行时会发生类型转换异常。

                    instanceof:前一个操作数一个引用类型的变量,后一个操作数是一个类(接口),用于判断前面的对象是否是后面类的子类或者实现类。

                    例子:

                               String book ="123";

                               // book编译时期运行时期都是String 类型,所以 返回true

                               System.out.println(book instanceof Object);

                               // book编译时期运行时期都是String 类型,不可能转换为Integer,所以在编译时就报错

                               System.out.println(book instanceof Interger);

                                Object hello = "hello";

                                // hello编译时期是Object类型,也有可能转换为Math,但hello运行时期是String类型,所以运行结果为false

                                System.out.println(hello instanceof Math);

 

案例参考《JAVA疯狂讲义》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值