1、形参(Parameter)和实参(argument)
定义方法会运用形参,调用方法的一方会运用实参
实参:对象.方法(实例变量的具体值)
d.bark(3);//实参
void bark(int size){
}//size为形参
一个例子
//普通类
class ExerciseNormalClass1 {
int arg;
int go(int arg){
arg=arg*2;
return arg;
}
}
//测试类
public class ExerciseTestClass1 {
public static void main(String[]args){
int orig=42;
ExerciseNormalClass1 X=new ExerciseNormalClass1();
int y=X.go(orig);
System.out.println(orig+" "+y);
}
}
2、返回值
方法中可以有返回值,定义的返回值的数值类型一定要能够符合方法的类型
方法必须声明返回变量,使用void类型代表方法不返回任何东西即为return;
int method(){
return 42;//42与int
}//一个参数的时候
如果方法中有多个参数需要传入,一定要以正确的数量、类型和顺序来传递参数,并且用逗号“,”分开
void method(int x,int y){
int z=x+y;
System.out.println(z);
}
//新建一个对象t
t.method(12,34);//12代表x,34代表y,当然也可以例外定义整数型变量m,n并将其分别赋予12,34,那么也可以写成t.method(m,n)
运用参数与返回类型
int numOfPickups;
int getnumOfPickups(){
return numOfPickups;
}/返回实例变量的值
void setnumOfPickups(int num){
numOfPickups=num;//在普通类中进行该操作,可以在测试类中被调用用来赋值
}
3、封装
封装的基本原则:将实例变量标记为私有的,并提供共有的getter与setter来控制存取动作
封装的方法,将实例变量标记为private,将getter和setter标记为public
*封装的原理(仅个人理解):封装是将普通类中定义的实例变量定义为private,然后定义两个方法,一个是get,get类型符合实例变量的类型,需要返回值,二是set,set方法类型可随意,在这里需要定义形参,并在语句块中将形参赋予给实例变量,接下来再定义真正的方法,注意这个方法的变量仍然是最开始封装起来的实例变量;进入到测试类,先进行定义对象之类的常规操作,然后利用调用set方法进行赋值,这里就是实参,在这一部分get方法就几乎是没啥用的,最后调用真正地方法
*
封装的例子
//普通类
class PracticeNormalClass1 {
private int size;//将实例变量标记为私密的
public int getNumber(){
return size;
}
public void setNumber(int s){
size=s;
}
void bark(){
if(size>60){
System.out.println("Wooof!Wooof!");
}else if(size>14){
System.out.println("Ruff!Ruff!");
}
else{
System.out.println("Yip!Yip!");
}
}
}
//测试类
class PracticeTestClass1 {
public static void main(String[]args){
PracticeNormalClass1 one=new PracticeNormalClass1();
one.setNumber(70);
PracticeNormalClass1 two=new PracticeNormalClass1();
two.setNumber(3);
System.out.println("Dog one:"+one.getNumber());
System.out.println("Dog two:"+two.getNumber());//这里的值并不会影响最后结果,基本等同于无意义
one.bark();
two.bark();
}
}
4、数组中的对象行为
Dog pets=new Dog[2];
pets=new Dog();
pets[0]=new Dog();
pets[1]=new Dog();
pets[0].setSize(23);//赋值
int x=pets[0].getSize();
5、声明与初始化实例
我认为,就是在普通类中定义实例变量之时,直接赋予一个初始值
如果不进行初始赋值,则会有如下结果:
int | 0 |
---|---|
float | 0.0 |
boolean | false |
String | null |
String name="puppy";
5、实例变量与局部变量之间的差别
实例变量的声明在类中,不在方法中
局部变量的声明在方法中,并且局部变量在使用之前必须初始化,如果没有默认值会显示错误
**
6、变量的比较
- 用“==”来比较两个primitive主数据类型或判断两个引用是否引用同一个对象
int a=3;
byte b=4;
if(a==b){
//true}
Dog one=new Dog();//定义一个名为one的对象
Dog two=new Dog();//定义一个名为two的对象
Dog three =one;//定义一个等同于a的对象
if(one==three){
//true
}
if(one==two){
//false
}
- 使用equals()来判断两个对象是否在意义上相等,例如两个String类型的数据
String a="nihao";
String b="nihao";
if(a.equals(b)){
//true}