这是User.java
package _01ToObject.This;
class Course{
private int courseID;
Course(int courseID){
this.courseID = courseID;
}
}
public class User {
//字段,成员变量
private String userName;
private int userAge;
//自定义构造器
/**
* 在一个方法当中,要给变量赋值,它就会先给方法当中去找有没有该变量
* 如果有,就该方法内部的变量赋值,不会往上再去找了;如果没有,就往它的上一级去找
*
* 在方法当中变量前加上了this,就代表直接给对象当中的字段赋值
*
* this:"这个" 当前正在使用对象的地址
* @param name
* @param age
*/
User(String name, int age){
userName = name;
userAge = age;
}
//自己给自己赋值没有用
//要把userAge改为this.userAge
//this就代表当前创建的对象
User(int userAge){
this.userAge = userAge;
System.out.println(this);
}
//属性
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
/*public int getUserAge() {
return userAge;
}
public void setUserAge(int userAge) {
this.userAge = userAge;
}*/
void show() {
System.out.println("User's name = " + this.userName);
}
//main 方法
public static void main(String[] args) {
User user1 = new User("Daodao",18);
User user2 = new User(20);
System.out.println(user2);
user1.show();
user2.show();
User user3 = new User("CoCoNaiCha",3);
user3.show();
System.out.println(user3.userName);
System.out.println(user3.userAge);
//public 类的
//private 成员变量,可以直接在main方法调用?
**user3.userAge = 20;**
Course course1 = new Course(20120413);
**//System.out.println(course1.courseID);**
}
}
很奇怪的是,为啥public类里面的private可以在main方法中被调用,
但是默认类里面的private就不能在main方法中调用,
难道public类中的所有private的成员变量/甚至函数,都可以被main方法调用?
这是User2.java
package _01ToObject.This;
public class User2 {
public static void main(String[] args) {
User user1 = new User(10);
System.out.println("--------");
//不能编译,报错
//user1.userAge = 20;
}
}
事实证明,并不能够被同一个包中的其他Java文件调用,
最后发现原因是因为,
main()方法,在private成员变量所处的类中,当然可以被调用
0.0 … emmmm