灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2933回复:0

[系统教程]JAVA基础教程(6)

楼主#
更多 发布于:2012-09-08 08:09


2.实例方法和类方法
和实例变量和类变量的描述时是一样,当类的字节码加载到内存是类方法的入口地址就会被加载到相应的内存空间,即此时可以访问;而当且只有创建对象之后,实例方法的入口地址才会被加载到内存中,这是才可以调用.
既然知道了实例方法和类方法开始生效的时间,可以知道他们可以调用何种类的成员变量:
1)类方法因为是在创建对象之前就已经生效了,这时候实例变量还没有被分配内存空间,只有类变量被分配了内存空间,所以类方法只能调用被分配内存空间的变量即类变量;
2)实例方法是在创建对象之后才开始生效的,这是无论是类变量还是实例变量都已经被分配了内存空间,所以实例方法生效后可以调用类变量和实例变量.

复制代码
class Fibi
{   public static long  fibinacii(int n)
{   long c=0;
        if(n==1||n==2)
           c=1;
        else
           c=fibinacii(n-1)+fibinacii(n-2);
         return c;
    }
}
public class Example4_8
{  public static void main(String args[])
{  System.out.println(Fibi.fibinacii(7));//  可见还没哟创建Fibi的对象时就可以调用fibinacii()方法,因为属于static修饰的类变量
   }
}




包是java中有效的管理类的一个机制,包有类似于目录结构的层次结构.通过import关键字可以在程序中使用包
语法格式:
import<包名>.*;   //包含包中的所有类
import<包名><类名>//包含包中的指定类
例如:
import java.awt.*;      //包含java.awt包中的所有类
import java.awt.JButton;//包含java.awt包中的JButton类
既然知道了怎么使用,那如何制作包呢,可以通过关键字package声明包语句.package语句作为java源文件的一个条语句,指明该源文件定义的类的所在包.
语法格式:
package 包名
如果源文件中省略了package语句,那么源文件中定义命名的类将被隐含的认为是无名包的一部分,即源文件中定义命名的类在同一个包中,但该报没有名字而已.
包还可以是一个合法的表示符,也可以是若干个标识符加"."分割而成,如
package sunrise;
package sunrise.com.cn
程序如果使用了包的语句,如
package desney.tom;
那么目录必须包含有如下结构,如
C: cartoon desney tom
并且要将源文件保存在目录C: cartoon desney tom中,才能使用这个包,然后编译源文件:
C: cartoon desney tom javac 源文件.java

jacac C: cartoon desney tom 源文件.java
从一个例子体会此过程:

复制代码
package desney.tom;
public class PrimNumber
{   public void getPrimnumber(int n)
{  int sum=0,i,j;
       for(i=1;i<=n;i++)  
{  for(j=2;j<=i/2;j++)
{  if(i%j==0)
                   break;
          }
          if(j>i/2)
            System.out.print(" "+i);
       }
     }
public static void main(String args[])
{  PrimNumber p=new PrimNumber();
       p.getPrimnumber(20);
    }
}


保存上述源文件到C: cartoon desney tom下,然后编译
C: cartoon desney tom javac PrimNumber.java
运行程序时必须到desney tom的上一层目录cartoon中来运行,如
C: cartoon java desney.tom.PrimNumber
因为起了报名,类PrimNumber的全名应该为desney.tom.PrimNumber
导入这个包也要注意名称

复制代码
import desney.tom.PrimNumber;


所以用package可以把认可类都打包然后在其他程序中使用,于c或c++中的头文件有着相似的效果,差别就是java中的包里只能是类
注意:使用import可以导入包中的类.在编写源文件时,除了自己编写的类外,经常需要使用java提供的去多类,这些类可能不在一个包中.在学习java时,使用已经存在的类,避免一切从头做起,这是面向对象编程的一个重要方面.

总结:具体的把static修饰的变量和方法的使用方法做了介绍;对java中包有了初步认识


喜欢0 评分0
游客

返回顶部