面向对象:把构成问题的事物,按照一定规则划分为多个独立的对象,然后通过调用对象的方法来解决问题。——《Java基础案例教程》
面向对象的特点:
封装:封装属性和行为继承:无需在重新编写原有类的情况下,对原有类的功能进行扩展——增强代码复用,提高开发效率多态:允许重名,不同对象所表现的行为不同
一、类
类是对象的抽象,鸟是一类,鹦鹉是一个对象
创建类
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+"岁~");
}
}
二、类的封装
使用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();
}
}