java基础学习日志09

封装类

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);
		
	}
}





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值