This
的使用
l :可以调用本类中的方法 1、一般方法 2、构造函数。调用构造方法时,this()要放在构造方法的首先
l
:可以调用本类中的属性
l
可以表示当前对象
Thisv如何调用属性
class Person
{
private String name;
private int age;
public void setName(String name)
{
this.name = name;
//name = name; 返回为空,找不到,私有。
}
public String getName()
{
return this.name;
//return name;
}
}
public class javaoo4
{
public static void main(String args[])
{
Person per = new Person();
per.setName("张三");
System.out.println(per.getName());
}
}
张三
//this可以调用本类中的方法
class Person
{
private String name;
private int age;
public void setName(String name)
{
//强调一下,调用本类中的print
this.print();
this.name = name;
}
public String getName()
{
return this.name;
}
public void print()
{
System.out.println("设置内容了。");
}
}
public class javaoo4
{
public static void main(String args[])
{
Person per = new Person();
per.setName("张三");
System.out.println(per.getName());
}
}
设置内容了。
张三
class Person
{
private String name;
private int age;
//程序提供一个无参的构造方法,此构造用于打印创建person对象的信息
//程序再提供一个设置姓名的方法,年龄的默认值为1,但此方法也要打印对象创建信息
//程序要再提供一个有两个参数的构造方法,用于设置姓名和年龄,但要求也打印对象信息
public Person()
{
System.out.println("****创建了一个Person对象。");
}
public Person(String name)
{
System.out.println("***创建了一个person对象。");
this.setName(name);
this.setAge(1);
}
public Person(String name, int age)
{
System.out.println("**创建了一个person对象。");
this.setName(name);
this.setAge(age);
}
public void setName(String name)
{
this.name = name;
}
public void setAge(int age)
{
this.age = age;
}
public int getAge()
{
return this.age;
}
public String getName()
{
return this.name;
}
public String shout()
{
return "姓名:" + this.name + "/n年龄:" + this.age;
}
}
public class javaoo4
{
public static void main(String args[])
{
Person per = new Person();
per.setName("张三");
Person per1 = new Person("李四",30) ;
System.out.println(per1.shout());
// System.out.println(per1.getName);
// Person per1 = null;
// System.out.println(per1.getName());
System.out.println(per.getName());
}
}
****
创建了一个Person
对象。
**
创建了一个person
对象。
姓名:李四
年龄:30
张三
This表示当前对象主要应用在一点:用于进支对象的比较。
对象数组的创建
对象数组的使用分为两部分:1、创建格式:类名 对象名[] = new 类名[个数]
2、实例化对象数组 对象名[索引] = new 类名();
重点:this关键字的使用,this表示当前对象
This 调用本类中的属性 。 调用本类中的其他方法。 This调用本类中的其他构造方
法,调用时要放在构造方法的首行。
class Person
{
private String name;
private int age;
public Person(String name,int age)
{
this.name = name;
this.age = age;
}
public void change(Person p)
{
p.name = "李四";
p.age = 50;
}
public void print()
{
System.out.println("姓名:" + this.name);
System.out.println("年龄;" + this.age);
}
}
public class javaoo4
{
public static void main(String args[])
{
Person p = new Person("张三",30);
p.change(p);
p.print();
}
}
姓名:李四
年龄;
50
//
直接通过构造方法改变值了。
class Person
{
private String name;
private int age;
public Person(String name, int age)
{
this.name = name;
this.age = age;
}
public boolean compare(Person p1)
{
boolean flag = false;
Person p2 = this;
if (p1.name.equals(p2.name)&&p1.age == p2.age)
{
flag = true;
}
return flag;
}
public void print()
{
System.out.println("姓名:" + this.name);
System.out.println("年龄:" + this.age);
}
}
public class javaoo4
{
public static void main(String agrs[])
{
//假设认为,名字和年龄相等的就是同一个人
Person per1 = new Person("张三",30);
Person per2 = new Person("张三",31);
System.out.println(per1.compare(per2)?"是同一个人":" 不是同一个人");
}
}
class Person
{
private String name;
private int age;
public Person(String name,int age)
{
this.name = name;
this.age = age;
}
public void print()
{
System.out.println("姓名:" + this.name);
System.out.println("年龄:" + this.age);
}
}
public class javaoo4
{
public static void main(String argsp[])
{
//对象数组 :类名称 对象数组名[] = null;
//对象数组名 new 类名称[]
Person p[] = null;
p = new Person[10];
//对象数组在使用时需要为每一个元素[对象]分别实例化
p[0] = new Person("张三", 30);
p[1] = new Person("李四1", 30);
p[2] = new Person("李四2", 30);
p[3] = new Person("李四3", 30);
p[4] = new Person("李四4", 30);
p[5] = new Person("李四5", 30);
p[6] = new Person("李四6", 30);
p[7] = new Person("李四7", 30);
p[8] = new Person("李四8", 30);
p[9] = new Person("李四9", 30);
for (int i = 0;i <p.length ;i++ )
{
p[i].print();
System.out.println("___________________");
}
}
}