面向对象---------关键字private,this(八)

1.private关键字

private关键字特点
    * a:是一个权限修饰符
    * b:可以修饰成员变量和成员方法
    * c:被其修饰的成员只能在本类中被访问

封装和private的应用:
    * A:把成员变量用private修饰
    * B:提供对应的getXxx()和setXxx()方法
    * private仅仅是封装的一种体现形式,不能说封装就是私有

private修饰的成员有什么特点? 

       * a:是一个权限修饰符

       * b:可以修饰成员变量和成员方法

       * c:被其修饰的成员只能在本类中被访问

封装指的就是private,这句话对吗?

* private仅仅是封装的一种体现形式,不能说封装就是私有

人类年龄赋值问题:


class Demo1_Person {
	public static void main(String[] args) {
		Person p1 = new Person();
		p1.name = "张三";			//调用姓名属性并赋值

		//为什么要封装? 年龄 如果你赋值为负数,不合常理
		//p1.age = -17;				//调用年龄属性并赋值
		//p1.speak();					//调用行为

		p1.setAge(-17);

		System.out.println(p1.getAge());
	}
}

class Person {
	String name;					//姓名
	//特点:只能在本类中访问
	private int age;				//年龄
	
	//set方法 是否要传参数? set方法是需要你传入数据
	//为什么要用this关键字? 原则 见名知意
	public void setAge(int age) {		//设置年龄  校验数据
		if (a > 0 && a < 200) {
			//启动就近原则 ,引入关键字this
			this.age = age;
		}else {
			System.out.println("请回火星吧,地球不适合你");
		}
		
	}
	//获取方法 需不需要传参数? 不需要
	//顺序 : 应该先设置 再获取
	public int getAge() {			//获取年龄
		return age;
	}

	public void speak() {
		System.out.println(name + "..." + age);
	}
}

2.this关键字

this关键字特点
    * 代表当前对象的引用

this的应用场景
    * 用来区分成员变量和局部变量重名

this关键字是什么?用途是什么?

代表当前对象的引用, *用来区分成员变量和局部变量重名

查看注释中代码,完成代码后要求

查看注释中需求,完成代码

class Demo1_This {
	public static void main(String[] args) {
		Person p1 = new Person();
		p1.setName("张三");
		p1.setAge(23);
		System.out.println(p1.getName() + "..." + p1.getAge());

		Person p2 = new Person();
		p2.setName("李四");
		p2.setAge(24);
		System.out.println(p2.getName() + "..." + p2.getAge());
	}
}

class Person {
	private String name;			//姓名
	private int age;			//年龄
	
	public void setAge(int age) {		//设置年龄
		if (age > 0 && age < 200) {
			this.age = age;
			//System.out.println(age);
		}else {
			System.out.println("年龄不合理,范围在0-200之间");
		}
		
	}

	public int getAge() {			//获取年龄
		return age;
	}

	public void setName(String name) {	//设置姓名
		this.name = name;
		//System.out.println(name);
	}

	public String getName() {
		return name;
	}
}

3.手机类
    属性:品牌brand,价格price
    行为:打电话call,发短信sendMessage,玩游戏,playGame

//第五步:书写一个测试类,带有main方法
class Demo2_Phone {
	//第六步:书写main方法,然后在main方法里面书写代码
	public static void main(String[] args) {
		//第七步:创建对象  格式: 类型 对象名 = new 类名();
		Phone p1 = new Phone();
		//第八步:调用成员set方法,设置成员属性  格式 对象名.方法名();
		p1.setBrand("三星");
		p1.setPrice(5288);
		//第九步:调用成员get方法 获取值
		System.out.println(p1.getBrand() + "..." + p1.getPrice());
		//第十步: 调用普通成员方法 对象名.方法名();
		p1.call();
		p1.sendMessage();
		p1.playGame();
	}
}

//第一步: 要做什么?描述一个手机类,需要写一个关键字 class + 类名
class Phone {							//java bean
	//第二步: 开始写成员变量,写成员变量要加关键字 private 私有化
	private String brand;					//品牌
	private int price;					//价格
	
	//第三步:提供对外公开访问方式 set/get方法
	public void setBrand(String brand) {	//设置品牌
		this.brand = brand;
	}

	public String getBrand() {	//获取品牌
		return this.brand;	//this.可以省略,你不加系统会默认给你加
	}

	public void setPrice(int price) {	//设置价格
		this.price = price;
	}

	public int getPrice() {			//获取价格
		return price;
	}
	//第四步:书写普通的成员方法
	public void call() {					//打电话
		System.out.println("打电话");
	}

	public void sendMessage() {				//发短信
		System.out.println("发短信");
	}

	public void playGame() {				//玩游戏
		System.out.println("玩游戏");
	}
}

猜你喜欢

转载自blog.csdn.net/mqingo/article/details/81907102
今日推荐