面向对象

面向对象

一、初识面向对象

举例 Math 类

public final class Math {

    private Math() {

    }

    public static final double E = 2.7182818284590452354;
    public static final double PI = 3.14159265358979323846;

    public static double sin(double a) {
        // code...
    }

    public static double toRadians(double angdeg) {
        return angdeg / 180.0 * PI;
    }

}

举例 String 类

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {

    private final char value[];

    private int hash; // Default to 0

    private static final long serialVersionUID = -6849794470754667710L;


    private static final ObjectStreamField[] serialPersistentFields =
        new ObjectStreamField[0];

    public String() {
        this.value = "".value;
    }

    public String(String original) {
        this.value = original.value;
        this.hash = original.hash;
    }

    public String(char value[]) {
        this.value = Arrays.copyOf(value, value.length);
    }

}

面向过程与面向对象

面向过程思想:步骤清晰简单,第一步做什么,第二步做什么。

面向对象思想:分类的思维模式

首先分析要解决的问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。

从宏观上、从整体上合理分析,使用面向对象的思路来分析整个系统。

具体到微观操作,仍然需要面向过程的思路去处理。

面向对象编程( Object- Oriented Programming,OOP)

面向对象编程的本质就是:以类的方式组织代码,以对象的方式组织(封装)数据

在认识论角度上,先有对象后有类。对象是具体的事物。类是对对象的抽象
从代码运行角度上,先有类后有对象。类是对象的模板。

二、对象的创建分析

package com.gcbeen.oop;

public class Pet {

    private String name;
    private int age;

    public Pet() {
        System.out.println(this.name);
        System.out.println(this.age);
        System.out.println("=Pet()=");
    }

    public Pet(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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;
    }
}

Pet pet = new Pet();
// name: null
// age: 0
// =Pet()=

使用new关键字创建对象的时候

  1. 分配内存空间给对象

  2. 给对象进行默认的初始化

  3. 调用类中构造器

构造器

Pet cat = new Pet();
System.out.println(cat.getName());
System.out.println(cat.getAge());

Pet dog = new Pet("旺财", 3);
System.out.println(dog.getName());
System.out.println(dog.getAge());

// null
// 0
// 旺财
// 3

构造器的有以下俩个特点:

  1. 必须和类的名字相同

  2. 必须没有返回类型也不能写void

构造器的作用:

  1. new本质在调用构造方法

  2. 设置对象属性的值

注意:定义有参构造器之后,如果想使用无参构造器,必须定义一个无参构造器。

在这里插入图片描述

对象初始化时,属性的默认值

整型数字(int, short, long, byte): 0

浮点型数字(float, double):0.0

char:\u0000

boolean: false;

引用型:null

Unicode编码中\u0000代表的是空字符,属于控制字符,也叫不可显字符

这个空字符与空格不同,空格的编号是 \u0020

posted @   gcbeen  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示