03.面向对象:类及类的封装——public和private

面向对象:把构成问题的事物,按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题。——《Java基础案例教程》

面向对象的特点:

  1. 封装:封装属性和行为
  2. 继承:无需在重新编写原有类的情况下,对原有类的功能进行扩展——增强代码复用,提高开发效率
  3. 多态:允许重名,不同对象所表现的行为不同

一、类

类是对象的抽象,鸟是一类,鹦鹉是一个对象

创建类

class Person{
	int age;
	void Speak() {
		System.out.println("我今年"+age+"岁~");
	}
}

新建类:

Person P = new Preson();

全部程序:

public class Example01 {
	public static void main(String[] args) {
		Person p1 = new Person(); //新定义对象
		Person p2 = new Person(); //新定义对象
		p1.age = 19;
		p2.age = 24; //传入对象参数
		p1.Speak();
		p2.Speak();  //调用类的函数
	}
}

class Person{
	int age;
	void Speak() {
		System.out.println("我今年"+age+"岁~");
	}
}

二、类的封装

  1. 使用public

有两个问题:

  • 第12行报错:The public type Student must be defined in its own file

于是,我们新建一个Class文件:

没有提示错误了,

  • 再来看第二个问题,一个学生的年纪是128,这多半是错了。我们不想要任何一个人随意在main里胡乱修改年纪,于是乎,我们用private

提示:我目前的理解是private设置的不是不可以改,只是改起来要麻烦一点,就像小区的大门,以前没有门,现在弄个门,外人一样可以进来,只是麻烦一点

class Student{
	private String name;//将name属性私有化
	private int age;
	
	//getName()方法用于获取name属性的值
	public String getName() {
		return name;
	}
	//setName()方法用于设置name属性的值
	public void setName(String stuName) {
		name = stuName;
	}
	//同理
	public int getAge() {
		return age;
	}
	public void setAge(int stuAge) {
		if(stuAge<=0 && stuAge>=100) {
			System.out.println("请确认您所输入的年龄");
		}else {
			age = stuAge;
		}
	}
	public void introduce() {
		System.out.println("我叫"+name+"今年"+age+"岁~");
	}
}
//不用public 就可以放在同一个文件内

public class Example01 {
	public static void main(String[] args) {
		Student stu = new Student();
		stu.setAge(18);
		stu.setName("阿瑶");
		stu.introduce();
	}
}

猜你喜欢

转载自blog.csdn.net/qq_39883358/article/details/83505451