private关键字的作用:
私有的,不可访问的private可以修饰成员变量,也可以修饰成员方法被private修饰的成员只能在本类中访问,外界不能访问公共的访问方法:set和/get方法(快捷键:Alt+Shift+s r)
/* * 一个手机类: * 成员变量:brand,price,color(将成员变量私有化,提供公共的访问方式) * 成员方法:手机特有的功能:打电话/玩游戏(将玩游戏的方法私有化) * */ //手机类 class Phone{ private String brand; private int price; private String color; //提供公共的访问方法 public String getBrand() { return brand; } public void setBrand(String b) { b = brand; } public int getPrice() { return price; } public void setPrice(int p) { p = price; } public String getColor() { return color; } public void setColor(String c) { c = color; } //打电话的成员方法 public void call(){ System.out.println("打电话"); } //发短信的成员方法 private void playGames(){ System.out.println("玩游戏"); } } //测试类 public class Demo { public static void main(String[] args){ //创建手机类的对象 Phone p = new Phone(); //利用公共的访问方法给变量赋值 p.setBrand("美图"); p.setColor("粉色"); p.setPrice(3500); //报错,成员变量是私有的,必须用公共的访问方法 // System.out.println(p.Brand()+","+p.Color()+","+p.Price()); System.out.println(p.getBrand()+","+p.getColor()+","+p.getPrice()); p.call(); //报错,私有的成员方法,只能在本类中访问,外界不能访问 // p.playGames(); } }构造方法格式:
方法名与类名相同没有返回值类型,连void都没有没有具体的返回值构造方法的注意事项:
如果你不提供构造方法,系统会给出默认的无参构造方法如果你提供了构造方法,系统将不再提供构造方法也是可以重载的 class Student{ private String name; private int age; //提供公共的访问方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } //提供构造方法,构造方法是可以重载的 //带有一个参数的构造方法 public Student(String name){ this.name = name; } //带两个参数的构造方法 public Student(String name,int age){ this.name = name; this.age = age; } } public class Demo { public static void main(String[] args){ Student s1 = new Student("王一"); s1.setAge(20); System.out.println(s1.getName()+","+s1.getAge()); Student s2 = new Student("王二",22); System.out.println(s2.getName()+","+s2.getAge()); } }4. Student s = new Student()这一句话做了几件事情? Student s在栈内存中分配空间 new Student()在堆内存中申请空间 通过加载Student类加载成员变量(默认的初始化值) 显示初始化(通过构造方法对数据进行初始化) 通过创建对象进行赋值操作 给堆内存标记一个内存空间的地址值,Student s里面的地址值间接的指向