- 值传递:
Java语言中进行赋值操作或函数调用中传递参数时,遵循值传递的原则,即传递的永远是参数的值。
(1)基本类型参数传递的值是真正的信息本身。
private int age = 12;//基础数据类型
(2)引用类型参数的值则是对象的引用(句柄)非对象的全部信息。
MyDate d1 = new MyDate(8,8,2008);
d1.display();
值传递举例:
class A{
String name = “zhangsan”; //存于堆中(创建的对象在堆当中)
int age = 12; //存于堆中
public MyDate(String name,int age){
this.name = name;
this.age = age;
}
public void display(){
system.out.println(name+” ”+age);
}
}
class B{
public static void main(String[] args){ //args存于栈中
MyDate d1 = new MyDate(“lisi”,2008); //d1存于栈中(实例化的对象在栈当中)
d1.display();
}
}
- 关键字this:
代表调用本类总中的方法或属性
Super:代表子类调用父类中方法和属性
在Java方法中既可以直接使用本方法的局部变量,还可以使用方法当前对象的成员变量。
为解决变量的命名冲突和不确定性问题,引用关键字this代表其所在方法的当前对象,具体可分为两种情况:(1)在普通方法中,关键字this代表方法的调用者、即本次调用了该方法的对象;(2)在构造方法中,关键字this代表了该方法本次运行所创建的那个新对象。
class A{
String name = “zhangsan”; //存于堆中(创建的对象在堆当中)
int age = 12; //存于堆中
public MyDate(String name,int age){
this.name = name; //this.name--》代表的是全局变量,=后的name代表的是局部变量的name。局部变量和全局变量的名称是不冲突的。
this.age = age;
}
public int add(){
int age = 10;
int b = 10;
int c = age + b;
int d = this.age +b;
system.out.println(c);//运行结果:10+10=20
system.out.println(d); //运行结果:12+10=22
}
}
在方法中,局部变量的优先级要高于全局。如果在局部变量中没有找到才会去全局中找。
3. 控制台输出:
(1) System.out.println();//输出单个数据到控制台上并换行
(2) System.out.print();//输出单个数据到控制台上不换行
(3) System.out.printf(“%10.2f”,age);//输出想输出的格式