Javase(二)面向对象概述
·
面向对象概述
软件开发分为两个方向:
- PO (procedure oriented) 面向过程:面向过程就是将业务拆解成一个个步骤,比如启动汽车这个业务就可以拆解成:点火 ----> 松离合 ----> 挂挡 ----> 松离合 ----> 踩油门。适合于简单的业务流程。
- OOP(object oriented programing) 面向对象:面向对象可以分为三个方面:1、OOA:面向对象分析;2、OOD:面向对象设计;3、OOP:面向对象编程。因此,面向对象就是先分析出此业务需要哪些对象参与 (对象包括了属性和行为)例如还是启动汽车这个业务,就可以分为:汽车对象和人对象。人有启动汽车的行为,由人对象来启动汽车对象。面向对象有很好的解耦合性,并且扩展性也很好,比如生产一台电脑,面向过程就需要一次成型,如果后续需要更改里面的磁盘大小,内存条大小就需要整体更换,但是面向对象的话就只需要将其中的磁盘对象更换就可以,非常方便。
面向对象三大特性
- 封装
- 继承
- 多态
类和对象
类是一个抽象出的概念,比如说你我他都具有同样的属性如:姓名、身高、年龄等等和行为如:吃、睡觉等等,于是就可以抽象成“人类”。程序中,属性通常用变量表示;而行为通常用方法表示。
类 = 属性 + 方法。
而对象就是类的实例化,是具体的,例如抽象出了明星类,那比如蔡徐坤就是明星类具体的对象

/*
类创建语法:
[修饰符列表] class 类名 {
// 属性(描述状态)
// 方法(描述行为动作)
}
*/
// 例如:学生类
public class Student {
// 属性1:姓名
public String name;
// 属性2:年龄
public int age;
// 属性3:学号
public String studentNumber;
// 行为:学习的行为
public void study() {
System.out.println("正在学习中...");
}
}
对象的创建和使用:
class Test{
public static void main(String[] args) {
/*
创建对象和使用
Java中,类是一种引用数据类型
Student是数据类型,s1是变量名
*/
Student s1 = new Student();
// 读取对象的属性
s1.name;
// 修改对象的属性
s1.name = "蔡徐坤";
// 使用对象的方法
s1.study();
// 类可以创建多个对象
Student s2 = new Student();
Student s3 = new Student();
Student s4 = new Student();
}
}
练一练:定义一个宠物类,属性包括名字,出生日期,性别。有吃和跑的行为。再编写测试程序,创建宠物对象,访问宠物的属性,调用宠物吃和跑的方法。
public class Pet {
public String name;
public String birthday;
public char gender;
public void eat(){
System.out.println("正在吃...");
}
public void run() {
System.out.println("正在跑...");
}
}
public class PetTest {
public static void main(String[] args){
Pet cat = new Pet();
cat.name = "曹髦";
cat.birthday = "2026-3-29";
cat.gender = '公';
System.out.println("猫的信息:姓名:"+ cat.name +" 生日:"+ cat.birthday
+" 性别:" + cat.gender);
cat.eat();
cat.run();
}
}
以此例子来解析一下对象的内存分析


初次认识this关键字:出现在实例方法中,代表当前对象。“this.”大部分情况下可以省略。
this存储在实例方法栈帧的局部变量表的0号槽位上。
空指针异常是如何发生的?
public class PetTest {
public static void main(String[] args){
Pet cat = new Pet();
cat.name = "曹髦";
cat.birthday = "2026-3-29";
cat.gender = '公';
cat = null;
System.out.println(cat.name);
}
}

Java中的GC主要针对的是JVM的堆内存。
更多推荐



所有评论(0)