Java:类与对象
类与对象
1.类和对象的区别:
类是对对象特征的概括,是泛例;对象是一个具体的实例。
2.类的定义+构造方法
public class Person {
private String name;
private char sex;
private int age;
public Person(){//无参构造方法
}
public Person(String name,char sex,int age){
this.name=name;
this.sex=sex;
this.age=age;
}
}
注意! 如果编写一个java类时没有添加无参构造方法,那么编译器会自动添加无参构造方法,但是如果编写时添加了有参构造方法而未添加无参构造方法,那么编译器只认有参构造方法而不会默认添加无参构造方法。
所以这边建议,不管有无含参构造,都自己定义一个无参构造方法。
构造方法的嵌套
如果要在构造方法里面调用另一个构造方法(方法重载)
注意!
- Java规定,在一个构造方法中用this调用另一个构造方法的语句必须放在大括号内的第一句。
- 多个构造方法之间是重载的关系,系统会根据this()括号中的参数列表自动调用相应的构造方法。
public Person_up(String name,int age){
this.name=name;
this.age=age;
this.id=count++;
}
public Person_up(String name,char sex,int age){
this(name,age);
this.sex=sex;
}
3.对象的使用
一旦通过类new一个变量,会先访问类对成员变量的操作,再访问构造方法
Person p1=new Person();
//先访问
//private String name;
//private char sex;
//private int age;
//再访问 public Person(){//无参构造方法}
Person p2=new Person("abc",'G',20);
4. 包含单个对象和多个对象程序如何操作的:P103,104
5. 多个对象指向相同(地址相同):P105
6. 成员变量与局部变量:成员变量是类里面方法之外的,局部变量是方法内的,包括调用方法参与方法的形参变量。
7.private
private的使用关键就在于他的作用范围只能在它所属的那个类。当用该类定义的对象出现在其他类中,不能直接对对象中的成员变量进行操作,只能通过该类中的方法对对象中的成员变量进行操作。
Person p1=new Person();
//,name的修饰符为private,所以p1.name="hello"这样写是错误的
p1.setName("hello");
//setName是Person对象的一个方法
8.this
当出现成员变量与局部变量重名时,this可以用于指代成员变量
当成员变量与局部变量(方法的形参)重名,重名的那个变量就近指代形参(局部变量)。不重名的话就还是成员变量。
public void setSex(char sex){
this.sex=sex;
}