封装类
package com.hisoft.java.demo; /** * 这个类是讲解封装 * @author jh *封装可以隐藏对象的属性和实现细节,仅对外公开接口,并且可以控制对象的属性和方法的访问级别, *提高了程序的模块化及安全性,且易于维护。 * */ public class Student { // 将属性定义为私有的 private String stuName; private int age; private String address; // 提供public的方法来去访问私有属性 public String getStuName() { return stuName; } public void setStuName(String stuName) { // this关键字代表当前对象 // this主要用来区别当前类的成员变量和局部变量 String name; this.stuName = stuName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } //在静态方法里面是不能是this,原因static在初始化阶段就已经存在,而this在实例化后才有 // public static void run(){ // this.stuName="tom"; // } /** * 可以在类的构造方法中通过this()来调用其他构造方法 * 如果在构造方法中使用this来调用本类中其他构造方法,则必须要放到该构造方法的第一行。 * 在通过构造方法相互调用时,一定要注意不能形成闭合的调用 */ public Student() { this("tom"); } public Student(String name) { this(name,21); this.stuName=name; } public Student(String name,int age) {
地址赋值问题
public class PassRef { public static void main(String[] args) { Obj obj = new Obj(); // obj.x = 5; // change(obj); // System.out.println(obj.x); obj.x = 5; change1(obj); System.out.println(obj.x); obj.x = 5; change2(obj.x,obj); System.out.println(obj.x); } public static void change(Obj obj) { obj.x = 3; } public static void change1(Obj obj) { Obj obj1 = new Obj(); obj = obj1; obj.x = 3; } public static void change2(int x,Obj obj){ obj.x=x+2; } } class Obj { public int x; }
匿名对象 public class Test { public static void main(String[] args) { // Person per = new Person(); Person per; // per = new Person(); //实际上new Person()调用的是Person类的构造方法 // 创建完对象后就可以通过对象.属性,或对象.方法来调用所有的成员变量和方法 // per.age=12; // per.name="tom"; // System.out.println(per.age); // System.out.println(per.name); // per.run(); // 匿名对象,就是没有对象名,一个匿名对象只能用用一次,只能执行一次操作 // new Person().age=12; // new Person().name="123"; // new Person().run(); // 以下是通过有参构造方法创建对象 // Person p1 = new Person(21); // System.out.println(p1.age); // Person p2 = new Person(23,"jerry"); // System.out.println(p2.age); // System.out.println(p2.name); // // Person p3 = new Person("tom",23); // // Person p4 = p3.getPerson("杨东旭"); // System.out.println(p4.name); // 以下是通过单例模式创建的对象 Person p5 = Person.getPerson("俊成"); // p5.name="俊成"; Person p6 = Person.getPerson("李南"); // p6.name="李南"; System.out.println(p5.name); System.out.println(p6.name); // SingLeton sl = SingLeton.getInstance(); // SingLeton sl1 = SingLeton.getInstance(); // System.out.println(sl); // System.out.println(sl1); // Singleton1 st1 = Singleton1.getInstance(); // Singleton1 st2 = Singleton1.getInstance(); // System.out.println(st1); // System.out.println(st2); } }