java中的类与对象
Posted 541wsy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中的类与对象相关的知识,希望对你有一定的参考价值。
成员函数
Java中编写在类中的函数,一般称为成员函数。
成员函数的一般格式如下(参数可以有也可以没有):
返回类型 函数名称 (类型1 参数1,类型2 参数2,......){
函数内容
}//普通的成员函数可以直接使用同一个类中的成员变量,不用加变量名。
注:调用函数时,程序会跳转到该函数内部执行,执行完毕后回到原函数继续执行后面的代码,可以通过“对象名.函数名(参数值列表)”调用函数。
关于参数
1、形参(形式参数):是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。如:void init(String n;int a);定义了函数init,传入两个参数,这些参数只能在函数内部使用,属于局部变量,其中的“n”“a”叫做形参。
2、实参(实际参数):实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。如:zhangsan.init("zhangsan","19");调用了此成员函数,传入两个值给“n”“a”,“zhangsan”“19”叫做实参。
3、参数传递值传递:主调函数向调用函数传递参数实际上只是将实参的拷贝(即临时副本)传递给了被调用函数,并不是实参本身,这样被调函数不能直接修改主调函数中变量的值,而只能修改其私有的临时副本的值。
4、参数传递之引用传递:对引用的操作等于对其指定的对象进行操作,当将实参传递给形参时,形参就指向了实参。简单理解就是传了地址值。
举例说明
1 class Number{ 2 int a; 3 } 4 class Add1{ 5 void fun (Number num){//传递引用类型参数,传地址,引用传递 6 num.a = num.a + 1; 7 } 8 } 9 public class Test1{ 10 public static void main(String[] args){ 11 Number num = new Number(); 12 num.a = 10; 13 Add1 c = new Add1(); 14 c.fun(num); 15 System.out.println("num.a=" + num.a); 16 } 17 }
输出结果为:num.a=11;为引用传递
class Add2 { void fun(int a){//传递基本类型参数,值传递 a = a+1; } } public class ObjectTest6 { public static void main(String[] args) { int a = 10; Add2 c = new Add2(); c.fun(a); System.out.println("a=" + a); } }
输出为:a=10;为值传递
关于返回类型
1、“int abs(int a)”定义了函数 abs,返回一个整数类型的值。
2、“int result = c.abs(-10);”表示调用该函数,将返回值存入 result 变量。
3、如果函数中,中途遇到了 return,函数中途跳出。
4、没有返回类型的函数,也可以 return,表示跳出该函数。但是,不能return一个具体的值。
函数重载
也叫做静态多态,说白了就是用一个函数名做不同的事,以下条件必须满足一个才可以重载。
先定义一个函数作为例子 int adx(int a,double b){功能1}
1、函数参数个数不同。int adx(int a){功能2}
2、函数参数个数相同,类型不同。double adx(int a,double b){功能3}
3、函数参数个数相同,类型相同,但是在参数列表中的出现顺序不同。int adx(double b,int a){功能4}
构造函数
构造函数可以完成对象初始化的任务,构造函数的名称与类名相同且不含返回类型。定义了构造函数之后,在实例化对象时,就必须传入相应的参数列表,否则报错,使用方法是:
类名 对象名 = new 类名(传给构造函数的参数列表);
注:1、当一个类的对象创建时,构造函数就会被自动调用,可以在这个函数中加入初始化工作的代码。在对象的生命周期中,构造函数只会调用一次。
2、构造函数可以被重载,也就是说,一个类中可以定义多个构造函数。实例化对象时,系统根据参数的不同,调用不同的构造函数。
3、在一个类中,如果没有定义构造函数,系统会自动为这个类产生一个默认的构造函数,该函数没有参数,也不做任何事情。
举例说明
class Student{ String name; String sex; int age; Student(String name,String sex,int age){//第一个构造函数 this.name = name; this.sex = sex; this.age = age; } Student(String name,int age){//重载的构造函数 this.name = name; this.sex = "不明"; this.age = age; } void display(){ System.out.println("name=" + name); System.out.println("sex=" + sex); System.out.println("age=" + age); } } public class Test2 { public static void main(String[] args) { Student zhangsan = new Student("张三", "男", 19);//根据参数选用第一个 zhangsan.display(); Student lisi = new Student("李四",20);//根据参数选择第二个 lisi.display(); } }
输出结果为:
name=张三 sex=男 age=19 name=李四 sex=不明 age=20
以上是关于java中的类与对象的主要内容,如果未能解决你的问题,请参考以下文章