Java面向对象02:什么是面向对象

时间:2021-09-06 22:01:22   收藏:0   阅读:18

面向过程 vs. 面向对象

面向过程

面向对象(Object Oriented Programming,OOP)

类与对象

对象

从认知角度,先有对象后有类。对象,是具体的事物;类,是对对象的抽象

从代码运行角度,先有类后有对象。类是对象的模板

类与对象的创建

new关键字

使用new关键字创建对象时,除了分配内存空间之外,还会给对象进行默认的初始化以及对类中构造器的调用

public class Hello {
    //一个项目应该只有一个main方法
    public static void main(String[] args) {
        //类实例化后会返回一个自己的对象
        //xm对象就是Student类的具体实例
        Student xm = new Student();
        xm.name = "小明";
        xm.age = 3;
        xm.print();
    }
}
//创建学生类,抽象的
class Student{
    //属性
    String name;
    int age;
    //方法
    public void print(){
        System.out.println(name + " " + age + "岁");
    }
}

构造器

类中的构造器也称为构造方法,是在进行创建对象时必须要调用的。构造器具有以下两个特点:

.java文件

public class Hello {
    //一个项目应该只有一个main方法
    public static void main(String[] args) {
        //new 实例化了一个对象
        Student student = new Student();
    }
}
//创建学生类,抽象的
class Student{
    
}

Student.class文件反编译

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

class Student {
    Student() {  //可以看到创建类时,隐式定义了一个方法,其名字和类名一致,无参且没有返回值,这就是构造方法
    }
}

new对象和构造器的关系

public class Hello {
    //一个项目应该只有一个main方法
    public static void main(String[] args) {
        //new 实例化了一个对象
        Student student = new Student();
        System.out.println(student.name);
    }
}
//创建学生类,抽象的
class Student{
    String name;
    int age;
    //1. new对象时,其本质是在调用构造器,其是隐式定义的
    //2. 构造器一般用来初始化值
    Student(){
        this.name = "ty";
    }
    //如果重载了一个有参构造器,则默认的无参构造器必须显示定义,否则无效,快捷键alt + insert
    Student(int age){
        this.age = age;  //this关键字指定对象的属性,和形参做区分
    }
}

原文:https://www.cnblogs.com/taoyuann/p/15234579.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!