封装与方法构造

胸中似有万壑松 劲风过岗却无声

封装

封装的好处:
1、封装之后,对于那个事物来说看不到这个事物比较复杂的那一面,只能看到该事物简单的那一面,复杂性封装,对外提供简单的操作入口。照相机就是一个很好的封装案例,照相机的实现原理非常复杂,但是对于是用照相机的人来说,操作起来是非常便捷的。

2、封装之后才会形成真正的“对象”,真正的独立体。

3、封装就意味着以后的程序可以重复使用。并且这个事物应该适应性比较强,在任何场合都可以使用。

4、封装之后,对于事物本身,提高了安全性【安全级别高】

例子

public class Penguin {
	// 定义属性
	private String name;
	private int health;
	private int love;

	public Penguin() {

	}

	public Penguin(String name, int health, int love) {
		this.name = name;
		this.health = health;
		this.love = love;
	}
	
	public void setName(String name){
		this.name=name;
	}
	
	public String getName(){
		return name;
	}
	
	public void setHealth(int health){
		//调用此方法来给对象的health赋值,在赋值前对传过来的health进行判断
		if(health<0||health>100){
			System.out.println("您输入的健康值有误,默认给健康值赋值为60");
			this.health = 60;
			return;//这里的return作用是结束方法后续代码的执行
		}
		this.health =health;
	}
	
	
	public int getHealth(){
		return health;
	}
	
	public void setLove(int love){
		//对传递过来的love值进行判断
		if(love<0||love>100){
			System.out.println("您输入的亲密度值有误,默认给亲密度赋值为80");
			this.love=80;
			return;
		}
		this.love=love;
	}
	
	public int getLove(){
		return love;
	}
	

	// 定义一个方法输出对象信息
	public void printInfo() {
		System.out.println("宠物信息:昵称:" + this.name + ",健康值:" + this.health
				+ ",亲密度:" + this.love);
	}
	public static void main(String[] args) {
		// 使用无参构造方法创建Penguin类的对象
		Penguin penguin1 = new Penguin();
		// 给对象penguin1的属性赋值,因为name属性使用private修饰了,所以不能同对象名.属性名直接给name属性赋值,只能是用其它方式给name属性赋值
//		penguin1.name = "QQ";
//		System.out.println(penguin1.name);
		
		penguin1.setName("QQ");
		String name =penguin1.getName();
		System.out.println(name);
		
		penguin1.setHealth(-90);
		System.out.println(penguin1.getHealth());
		
		penguin1.setLove(-99);
		System.out.println(penguin1.getLove());
	}
}



封装的步骤:

1、所有属性私有化,使用private关键字进行修饰,private表示西游的,修饰的所有数据只能在本类中访问。

2、对外提供简单的操作入口,也就是说以后外部程序想要访问age属性,必须通过这些简单的入口进行访问。

  • 对外提供两个公开的方法,分别是set方法和get方法
  • 想修改age属性,调用get方法
  • 想读取age属性,调用get方法

3、set方法的命名规范:

public void setAge(int a){
    age = a;
}

4、get方法的命名规范:

public int getAge(int a){
    return age;
}

注:stter and getter方法没有static关键字

有static关键字修饰的方法怎么调用:类名.方法名(实参);

没有static关键字修饰的方法怎么调用:引用.方法名(实参);

关于java类中的构造方法:

​ 1、 构造方法又称为构造函数/构造器/constructor

​ 2、构造方法语法结构

		(修饰符列表) 构造方法名(形式参数列表){
		构造方法体;
)

3、回顾普通方法的语法结构:

	(修饰符列表) 返回值类型 方法名(形式参数列表){
		方法体;
)

4、对于构造方法来说:“返回值类型”不需要指定,并且也不能写void

只要写上void,那么整个方法就成为普通方法了。

5、对于构造方法来说,构造方法的方法名必须和类名保持一致。

6、构造方法的作用?

构造方法存在的意义是,通过构造方法的调用,可以创建对象。

7、构造方法应该怎么调用?

​ 普通方法调用:方法修饰符中有static的时候,类名.方法名(实参列表)、方法修饰符列表中没有static的时候,引用.方法名(实参列表)

​ new 构造方法名(实参列表)

​ 8、每一个构造方法实际上执行结束之后都有返回值,但是这个“return 值;”这样的语句不需要写。构造方法结束的时候java程序自动返回值。并且返回值类型是构造方法所在类的类型。由于构造方法的返回值类型就是类本身,所以返回值类型不需要编写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值