Java基础十(类和对象)

类和对象

对象我们知道,代表现实世界中可以明确标识的一个实体(万物皆对象),每个对象都有自己独特的标识、状态和行为。
类是具有相似特征和行为的事物的统称。使用一个通用类来定义同一类型的对象 。 类是一个模板 、蓝本或者说是合约 , 用来定义对象的数据域是什么以及方法是做什么的 。 一个对象是类的一个实例 。 可以从一个类中创建多个实例 。 创建实例的过程称为实例化对象和实例经常是可以互换的 。

注意:主函数是不需要创建对象的,可以直接调用(由JVM)
main 程序主要且唯一入口,一般而言 把主函数所在的类称之为主类。

类的分类

  • 主类:主要负责程序的运行 还需不需要负责描述具体事物
  • 实体类:主要负责描述事物
  • 工具类:一般不会创建对象 直接通过类调用函数(静态)

下面几个就是我们常用的比较熟悉的几个工具类

Math.abs() Math.random()
Arrays.toString();
System.out.println();

对象与类的关系:类是对象的定义 , 对象从类创建 。例如狗是一个类,对所有狗的一个统称,而哈士奇就是狗这个类的一个实体对象。

如何去定义一个类
主要定义其特征和行为

  • 特征:变量
  • 行为:函数

定义狗这个类 ,特征有姓名、性别、年龄、身高、体重和毛色,定义6个成员变量存放,行为有吃和睡,定义两个成员函数来实现。

class Dog{
    //直接定义在类中的变量 成员变量
    姓名 String name;
    性别 String sex;
    年龄 int age;
    身高 double heigth;
    体重 double weight;
    毛色 String color;
    
    //成员函数(非static函数)
    吃   public void eat(){... return;}
    睡   public void sleep(){... return;}
}

创建哈士奇对象

public class Mian{
    public static void main(String[] args) {
        Dog Huskies=new Dog();
    }
}

对象创建的流程
1、主函数先进栈。
2、执行语句的右边new Dog(),在堆内存中开辟一个空间,随机分配地址。
3、在对象空间中创建成员变量的空间,并对成员变量进行默认初始化,创建成员函数(并不在对象空间里,也不再栈里,在栈中调用)。
4、在函数栈中创建局部变量,存放的是该对象在堆内存中的地址。

局部变量和成员变量的区别
区别一:定义的位置不同

  • 成员变量定义在类中
  • 局部变量定义在方法中或者语句里面

区别二:在内存中的位置不同

  • 成员变量存储在堆内存的对象中
  • 局部变量存储在栈内存的方法中

区别三:声明周期不同

  • 成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失
  • 局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失

区别四:初始化不同

  • 成员变量因为在堆内存中,所有默认的初始化值
  • 局部变量没有默认的初始化值,必须手动的给其赋值才可以使用
发布了70 篇原创文章 · 获赞 56 · 访问量 2003

猜你喜欢

转载自blog.csdn.net/qq_43624033/article/details/103283642