Java SE 自学笔记5 之方法和变量

方法和变量


1.方法的所属性
  从语法角度来看,方法不能独立定义,必须定义在类中

  方法所属性:
有 static 修饰的方法,属于类本身,而不属于实例
没有 static 修饰的方法,属于实例


  方法调用: 方法不能独立执行,必须有主调对象(调用者)。


2.Javav方法的参数传递机制:只有一种值传递(副本传递)。


3.形参个数可变的方法


   定义格式  type... 形参名


    其本质可以理解为是数组


  【注意】 -- 每个方法最多只能有一个形参个数可变的参数
            -- 形参个数可变的的参数必须位于最后

  
   Example:
    // int... 代表可以传入0~N个 int 参数值
public void info(int... nums)
{
  //在方法中, nums 相当于一个数组
for(int num :nums)
{
System.out.println("参数为" + num);
}
}

调用形式 
对象名.info( 1,2 ,3,...);
  或者
对象名.info(new int[] { 1,2,3,... });
 
  //  形参个数可变的的参数(最多只能有一个)必须位于最后
public void info(String str,int... nums)


      调用形式 
对象名.info( "Hello",1,2 ,3,...);
  或者
对象名.info( "Hello",new int[] { 1,2,3,... });
       
  
4.递归方法

  递归方法其实质是方法里面包含了一个隐式的循环 -- 递归就是在某个方法中再次调用方法本身。

  注意:递归一定保证在适合的时候结束调用自身,以免出现“死循环”,所以,递归时,一定要向“结束”端递归。
    


5.方法重载


  方法重载可归纳为:二同,一不同
二同: 同一个类,同一个方法名
一不同 :形参列表不同


  注意:
1) 方法重载与 返回值类型 没有任何关系,方法重载允许有不同的           返回值
2)方法重载与 是否有static 修饰 没有任何关系。


  确定调用的重载方法:主调者、方法名、匹配实参所对应的类型



6.变量
                                                                      ↗  没 static -- 实例变量,属于实例
            成员变量(Field,在类里定义)

                                                      ↘ 有 static -- 类变量,属于类
     ↗
变量
     ↘                     ↗   方法里面的局部变量,仅在该方法里有效
         局部变量     →   代码块里的局部变量,仅在该代码块里有效
                              ↘    形参,在整个方法里面有效


代码块 -- 是指一个{ } 括起来的范围


=======
成员变量


实例变量 :从有实例开始,实例变量就存在;实例被销毁,实例变量就不存在,实例变量可以有多个,程序每创建一个实例,系统就会为该实例变量分配内存


类  变量 :从定义类开始,类变量就存在;一个JVM里,类信息只有一个,每个JVM最多只加载一个类一次 


【注意】 
1.系统会为成员变量执行 默认的初始化
2.当程序通过实例来访问 类变量 时,由于类变量本身不属于实例,因此底层实际上是委托为通过类来访问



=======
局部变量


       局部变量存在相应的方法栈中


规则:
局部变量绝不允许同名
-- 形参、方法里面的局部变量、代码块里面的局部变量都应该互不相同,即使是变量类型不同,也不能同名;
        -- 不同代码块里面的局部变量互不相干,可以同名;


【注意】局部变量必须由程序员赋值,系统不对其执行默认的初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值