面向对象基础4

 

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("___________________");
              }
       }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值