您的位置:首页 > 编程语言 > Java开发

【Java学习笔记】基础知识学习6【类的基础、方法,对象基础、包】

2013-07-20 21:31 791 查看
从现在开始,就进入了类/对象的研究

在java中,类(Class)的编辑中,会在第一行有类似“package sunsoft.testideas;”以package开头的一段内容。

这个package就是包。包的存在,是为了保证类的名字不重复。因为不同的人同时开发代码的时候,难免会出现多人使用相同的名字作为类名的情况。在这种条件下,我们使用类的时候,就会无法确定我需要使用的是哪个类。所以,引入了包。在每个包内,类的名字都不相同就可以了。这样,在多人联合编写程序的时候,只需要分配给每个人一个固定的包名称,就可以解决类的名字重复的问题了。

将自己写的类加入某个包的方法就是:

在类的代码所在的java文件中的第一行(或者说最前面几行)插入“package 包名”这种形式的语句。一般来讲,包的名字是在eclipse里面创建Class的时候,就可以通过对话框确定的。

在写自己的程序的时候,可以引用别的包中 别人已经写好的类。

一种比较繁琐的方法是:

java.util.Date date=new java.util.Date();

即输入类的完整路径(包.类名)来引用。

还有一种简便的方法:使用Import(导入)

Import java.util.Date; 这个是导入一个Date类;

或者:

Import java.util.*; 这个是导入 java.util 包中的所有的类。

但是,需要注意的是,这样导入的是 java.util 中的类,并不包括java.util的子包(子包指:一个包中的包)中的类。

java中的方法重载、权限修饰符(private,public,protected)都和Visual
C++的极为相似,可以参照学习,就不详细记录。

类中的方法,就相当于C,VB等面向过程半面向对象的程序语言中的函数过程

而方法的参数传递,也可以借用C等语言的函数的参数传递的知识来理解。显著的区别在于,C支持指针,因此可以在调动函数的时候,以传址的方法传递参数,使得调用的函数可以对实参的值进行改变。而,java,在参数的传递过程中,是采取的传址的方法。

以下的一段代码可以用来验证:

package sunsoft.testideas;

public class Ex_Agri {
void AddNum(int s1,int s2){
s1=s1+s2;
}
void TestP(){
int a=12;
int b=1;
AddNum(a, b);
T.O("加后,结果为:"+a);
}
}


如果java默认支持传址的形式传输参数,则这里输出的a的值应该是13,而实际运行得出的结果是12。所以验证了上面所说的,java默认传值的猜想。在java中,对参数进行类似传址的操作需要通过引用(Reference)的方式来进行,我目前对引用的方法尚不熟悉,我会在研究透后另写文章记录经验。

构造函数,和VC++里面一样的,是用来在类的实例创建时对类的参数等等进行初始化,我写一个例子吧:

package sunsoft.testideas;

public class Ex_Person {
private String sName;
private String sSex;
private int age;

public void Say(String nWord){
System.out.println(sName+" says:"+nWord);
}
public Ex_Person(){
sName="David Sun";
sSex="Girl";
age=23;
}
public Ex_Person(String uName,String uSex,int uAge){
sName=uName;
sSex=uSex;
age=uAge;
}
public void Self_Description(){
Say("My Name is "+sName+" .I am a "+sSex+",and I am "+age+" years old.");
}
}


然后使用Person类的示例的代码如下:

package sunsoft.testideas;

public class IdeaTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Ex_Person sunrui=new Ex_Person("Bill","boy",22);
sunrui.Self_Description();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: