类和对象
##结构化编程与面向对象编程
结构化编程与面向对象编程区别
- 结构化编程中:程序围绕解决的任务来设计。
- 面向对象编程(OOP):程序不是围绕解决的任务来设计,而是围绕问题域中的对象来设计的。
面向对象的解决方案:
1.找对象。对象一定是名词,问题域中出现的任何人、事物或实体,也就是我们所说的“东西”。
2.找到对象后,编写一个类来描述每个对象的属性和行为。
属性:对象身上有什么值数据(由变量与常量组成。)。
行为:对象可以做什么或想要对象做什么。
分析问题域:找对象→抽取(具有相同属性和行为的对象)→编写类(值数据和功能)→类是产生对象的。
万物皆对象,对象因关注而生。类是对象的抽取,对象是类的实例。
语法书写:
类名 变量名 = new 类名();
变量.属性/变量.方法();
**class是关键字,表明定义一个类;
public是访问修饰符,代表在哪里可以访问使用这个类;
细节:如果一个类是public的,那么类名必须和java文件名保持一致;
一个类一篇class文件,class文件的名字只和类名相关。**
属性—会被自动初始化、基本数据类型为0,引用数据类型为null。
this指代当前对象
public class Student {
//属性---会被自动初始化、基本数据类型为0,引用数据类型为null
private String name;
private int age = 18;
private int score;
public final String CLASS_NAME = "J134";
public Student(String name, int age, int score) {
//this指代当前对象
this.name = name;
}
//行为
public void study(int num){
for(int i = 0; i < num; i++){
System.out.println(this.name + "说:Good Good Study,Day Day Up!");
}
}
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 int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
构造方法—作用:产生对象
语法:
1、方法名必须与类名保持一致;
2、构造方法没有返回类型;
构造方法的执行步骤:
1、划分空间;
2、在该空间划分属性;
3、对属性进行初始化;
4、执行我们在构造方法里面书写的代码
细节:
1、如果一个类没有写构造,JVM会给它一个默认的公共无参构造
2、一旦开发人员书写了一个构造方法,不会提供默认构造了
对象中的方法是没有static的。
标准java类(javabean)书写规范
封装
- 组装-类的定义
- 信息隐藏
- 访问修饰符
- 访问器/修改器
- 方法的实现
访问器:get变量名。
修改器:set变量名。
public class TeacherBean {
//属性--变量属性是私有的,并提供符合命名规范的get/set方法
private String name;
private int age;
private String major;
public final String SCHOOL_NAME = "狼窝教育";
//构造--必须要有公共无参构造
public TeacherBean(){
}
public TeacherBean(String name, int age, String major) {
this.name = name;
this.age = age;
this.major = major;
}
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 getMajor() {
return major;
}
public void setMajor(String major) {
this.major = major;
}
//最后书写功能性的方法
}