转载声明:文章来源https://www.cnblogs.com/jungle233/p/15499516.html
面向过程和面向对象的区别
简述
- 面向过程思想适合简单、不需要协作的事务。比如单纯驾驶汽车,不需要跟别人协作。
- 面向对象思想适合比较复杂的事务,无法列出1234步骤。比如如何造车?造车太复杂,需要很多协作才能完成。
总结
- 面向对象和面向过程都是解决问题的思维方式,都是代码组织的方式。
- 解决简单问题可以使用面向过程。
- 解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程
对象和类的概念
简述
- 对象有不同操作的方法、属性、变量等
- 类可以看做是一个模板或者图纸,系统根据类的定义来造出对象。
- 类:称之为 class 。对象:称之为 Object,instance(实例)。
- 某个类的对象等同于某个类的实例。同等含义。
类的定义
- 每个源文件必须有且只有一个 public class,并且类名和文件名保持一致。
- 一个 Java 文件可以同时定义多个 class
- 对于一个类来说,一般有三种常见的成员:属性field、方法method、构造器constructor。这三个成员都可以定义零个或多个。
代码示例:类的定义方式
// 下方定义的这些类都是空类,没有任何实际意义。还需要去定义类的具体信息。
// 每个源文件必须有且只有一个 public class,并且类名和文件名保持一致。
public class SxtStu {
}
// 一个 Java 文件可以同时定义多个 class
class Tyre{
}
class Emage{
}
class Try{
}
代码示例:简单的学生类编写
// 对于一个类来说,一般有三种常见的成员:属性field、方法method、构造器constructor。这三个成员都可以定义零个或多个。
public class SxtStu {
// 属性(成员变量)
int id;
String sname;
int age;
// 方法
void study(){
System.out.println("我正在摸鱼学习!");
}
// 构造方法
SxtStu(){
}
}
属性(field(成员变量))
简述
- 属性用于定义该类或该类对象包含的数据或者说静态特征。
- 属性作用范围是整个类体。
- 在定义成员变量时可以对其进行初始化,如果不进行初始化,Java 使用默认的值对其进行初始化。
属性定义格式
[修饰符] 属性类型 属性名 = [默认值];
成员变量默认值
方法
简述
- 方法用于定义该类或该类实例的行为特征和功能实现。比如一个学生类,他可以有学习或者玩游戏的行为特征或者说功能实现
- 方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。
- 面向过程中,函数是最基本单位,程序是由一个个函数调用组成。
- 面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。
方法定义格式
[修饰符] 方法返回类型 方法名(形参列表){
// n 条语句
}
代码示例:
public class SxtStu {
// 方法
void study(){
System.out.println("我正在摸鱼学习!");
}
void play(){
System.out.println("我在玩游戏!LOL手游!");
}
// 构造方法
SxtStu(){
}
}
代码示例:完整的对象与类方法的调用
- 程序必须要有 main 方法,作为程序执行的入口
- 构造方法:用于创建这个类的对象。无参数的构造方法可以由系统自动创建。
- 对于一个类来说,一般有三种常见的成员:属性field、方法method、构造器constructor。这三个成员都可以定义零个或多个。
public class SxtStu {
// 属性(成员变量)
int id;
String sname;
int age;
// 方法
void study(){
System.out.println("我正在摸鱼学习!");
}
void play(){
System.out.println("我在玩游戏!LOL手游!");
}
// 构造方法:用于创建这个类的对象。无参数的构造方法可以由系统自动创建。
SxtStu(){
}
public static void main(String[] args) {
// 定义创建一个类的对象
SxtStu stu = new SxtStu();
// 对象调用 play() 方法
stu.play();
// 对象调用 study() 方法
stu.study();
}
}
代码示例:模拟学生使用电脑学习
- 构造方法:用于创建这个类的对象。无参数的构造方法可以由系统自动创建。
- 对于一个类来说,一般有三种常见的成员:属性field、方法method、构造器constructor。这三个成员都可以定义零个或多个。
// 模拟学生使用电脑学习
class Computer {
String brand; // 电脑品牌
}
public class SxtStu1 {
// 定义属性(成员变量)
int year;
String sname;
int age;
// 在 SxtStu1 类中定义一个 Computer 类的对象
Computer comp;
// 定义方法
void study() {
System.out.printf("我正在使用%s这个品牌的电脑摸鱼学习!%n",comp.brand);
}
// 构造方法:用于创建这个类的对象。无参数的构造方法可以由系统自动创建。
SxtStu1(){
}
public static void main(String[] args) {
// 定义 SxtStu1 类的对象
SxtStu1 stu1 = new SxtStu1();
// stu1 对象调用 SxtStu1 类的属性(成员变量)并赋值
stu1.year = 2021;
stu1.sname = "阿jun";
stu1.age = 0;
// 定义 Computer 类的对象
Computer comp1 = new Computer();
// comp1 对象调用 Computer 类的属性(成员变量)并赋值
comp1.brand = "神舟战神";
// stu1 对象调用 comp 类属性(成员变量)并赋值为 comp1 的值
stu1.comp = comp1;
// 对象调用方法
stu1.study();
}
}
执行结果:
UML图示例
帖子还没人回复快来抢沙发