面向对象,是不同于数组的超强逻辑思维能力,他跟偏向于个人对事物需求的认知能力,很抽象的理解方式,在实际生活中的认知和观察能力对这部分学习有很大帮助.
下面通过一道经典例题给大家讲解一下今天课程中我的认知.
分析以下需求,并用代码实现
1.老师类Teacher
属性:
姓名name
年龄age
讲课内容content
行为:
吃饭
讲课
2.学生类Student
属性:
姓名name
年龄age
学习内容content
行为:
吃饭eat()
学习study()
要求:
1.按照以上要求定义Teacher类和Student类,属性要私有,生成空参、有参构造,setter和getter方法
2.定义测试类,在main方法中创建该类的对象并给属性赋值(演示两种方法:setter方法和构造方法)
3.调用成员方法,打印格式如下:
年龄为30的周志鹏老师正在吃饭....
年龄为30的周志鹏老师正在亢奋的讲着Java基础中面向对象的知识........("Java基础中面向对象"代表老师讲课的内容)
年龄为18的韩光同学正在吃饭....
年龄为18的韩光同学正在专心致志的听着面向对象的知识....("面向对象"代表学生学习的内容)
首先对于题目要求的分析,该题目中明确标注好学生和老师的属性和行为,那么就可以根据两者的属性和行为定义好结构方法:
先写出学生类的结构方法
package com.itheima.level02_02;
/*
* 学生类Student
属性:
姓名name
年龄age
学习内容content
行为:
吃饭eat()
学习study()
*/
public class Student {
private String name;
private int age;
private String content;
public void study() {
System.out.println("年龄为"+age+"的"+name+"同学正在专心致志的听着"+content+"的知识........");
}
public void eat() {
System.out.println("年龄为"+age+"的"+name+"同学正在吃饭....");
}
public Student(String name, int age, String content) {
this.name = name;
this.age = age;
this.content = content;
}
public Student() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
再定义出老师类的结构方法
package com.itheima.level02_02;
/*
* 1.老师类Teacher
属性:
姓名name
年龄age
讲课内容content
行为:
吃饭
讲课
*/
public class Teacher {
private String name;
private int age;
private String content;
/**
* 讲课方法
*/
public void jiangke() {
System.out.println("年龄为"+age+"的"+name+"老师正在亢奋的讲着"+content+"的知识........");
}
public void eat() {
System.out.println("年龄为"+age+"的"+name+"老师正在吃饭....");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Teacher() {
}
public Teacher(String name, int age, String content) {
this.name = name;
this.age = age;
this.content = content;
}
}
下面通过主方法里进行调用方法的使用,一个用空参,一个用满参
package com.itheima.level02_02;
public class MainApp {
public static void main(String[] args) {
Teacher t = new Teacher();
t.setName("周志鹏");
t.setAge(30);
t.setContent("java面向对象");
t.eat();
t.jiangke();
Student stu = new Student("韩光",18,"java面向对象");
stu.eat();
stu.study();
}
}
在面向对象的学习和使用中,一定要把事物抽象化想出来他的属性和行为,一般按照名词
和动词区分,特出情况特殊分析.为了更好的使用出面向结构,要对每一个结构方法进行封装好,以便让语言更清晰有力