Java基础-面向对象

87 阅读3分钟

面向过程:接下来我要做什么事情

面向对象 :

​ 接下来由谁去做

一.类

1.概念

​ 一个具有某些共同特征或行为的群体

​ 例如:代表学生这个群体【这一类事物】

public class Student {
    //通过成员变量描述这类事物的属性【静态属性】
    /**  姓名  **/
    String name;
    /** 年龄 **/
    int age;
    /** 身份证号 **/
    String idCard;
    /** 电话 **/
    String phone;
    /** true:男  false:女 **/
    boolean sex;


    //通过定义方法 描述这类事物行为能力【动态属性】
    public void sleep(){
        System.out.println("睡觉"+name);
    }
    public void eat(){
        System.out.println("吃饭");
    }
    public void playGame(){
        System.out.println("峡谷一日游");
    }

}


public class StudentTest {

    public static void main(String[] args) {

        Student s1 = new Student();
        s1.name="古巨基";
        s1.age=36;
        s1.idCard="465169161";
        s1.phone="10086";
        s1.sex=true;


        Student s2 = new Student();
        s2.name="张根硕";
        s2.age=40;
        s2.idCard="41651651";
        s2.phone="10010";
        s2.sex=true;


    }
}

​ 例如:代表学生这个群体【这一类事物】

2.语法:

​ public class 类名{

​ 可编写0-n个成员变量

​ 修饰符 数据类型 变量名1;

​ 修饰符 数据类型 变量名2;

​ 可编写0-n个 成员方法;

​ 修饰符 返回值类型 方法名称(参数){

​ 方法体

​ }

​ }

注意:

​ 1.类名大驼峰

​ 2.成员变量小驼峰

​ 3.类和成员变量上方必须写注释

3.设计类维度:

​ 2.1考虑某一群体的共同的特征

​ 2.2.属性特征组合在一起能够区分个体之间的不同

​ 一个类有多个对象

​ 其中的成员变量 代表群体的共同特征[静态属性,不推荐这种说法]

​ 通过成员变量描述这一类事物的属性

​ 文档注释/** **/

​ 一般表示性别男女用 boolean

​ 类中定义的方法

​ 通过定义方法,描述这类事物的行为能力[动态属性,不推荐这种说法]

二.对象

1.概念

​ 一个具体的独立的个体,以一种虚拟,数据化的形式表现

2.语法:

​ 创建对象语法

​ 【类似于把模版复制一次】

​ 类名 对象名 = new 类名( );

​ 类名:自己设计,其他官方设计的类的类名

​ 对象名:本质就是变量名

3.对象的赋值与取值:

3.1对象的赋值:

​ 对象名.属性名字=值;

3.2对象的取值:

​ 对象名.属性名字;

注意:

只有工具类由static方法修饰

对象的内存储

每一个对象,都会复制模版,然后再在堆里开辟自己的空间

4.对象的调用:

​ 对象.方法名( );

5.匿名对象:

1.概念:

​ 没有起名字的对象,没有可引用的地址

2.生命周期:

​ 2.1.被创建时候

​ 2.2.死亡

​ 2.2.1当对象失去引用值的时候----生命周期就结束

​ 2.2.2当GC(垃圾回收站)去回收对象的时候---生命周期结束

​ 匿名对象一般用于只是使用一次的情况,定义一个变量太麻烦的时候

三.构造函数/方法:

1.概念:

​ 一个特殊的方法,他的作用是用来创建对象

2.语法结构:

​ 权限修饰符 类名(形参列表){

​ //功能体

​ }

3.注意事项:

​ 3.1构造方法没有返回值【void都没有】

​ 3.2构造方法的名字必须和类名保持一致

​ 3.3不能使用static修饰

​ 3.4修饰符只能是权限修饰符 public private 【不要修饰符的】

​ 3.5.可以进行重载

构造方法不需要特殊调用,在创建对象的时候就是在调用构造方法 使用new

例如:

1690525967758转存失败,建议直接上传图片文件

4.构造方法还有哪些用处:

​ 1.构造方法在创建对象的时候使用

​ 2.构造方法

4.1注意事项:

​ 1.每一个类,都有一个公共的隐式无参数的构造方法

​ 2.一旦显示的书写了构造方法,隐式的就不存在了

​ 3.如果显示书写了有参数的构造方法,顺便手动添加无参数的构造方法

1690529002699转存失败,建议直接上传图片文件