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("玩游戏");
}
}