Java 类和对象(一)


前言

⾯向对象是解决问题的⼀种思想,主要依靠对象之间的交互完成⼀件事情。以面向对象的方法来处理问题,就不必专注于过程,而是让几个对象之间交互即可解决问题。


一、什么是类?

类是用来对一个对象进行描述的,可以当作是一种物品的分类描述,比如冰箱,吹风机等等,通过类描述实例的对象的属性和功能,比如属性:功率,尺寸,颜色等。功能:冰冻,冷藏等。

二、如何定义类?

1.class关键字

通过class关键字可以定义类,一般来说,在一个java源文件中,只能有一个public修饰的类,而且类名要和.java源文件的名称要相同。也可以定义其他不用public修饰的类在同一文件中,但是一般不会这样去用。

而且类名的命名方法采用大驼峰的原则定义。
在这里插入图片描述
在一个类有总共有两大部分组成,成员变量和成员方法,其中成员变量分为静态和非静态,成员方法也分为静态和非静态。静态代表用static修饰的变量或方法。(本篇先讨论非静态)

public class Dog {
//成员变量/属性/字段
// 1.非静态成员变量
// 2.静态成员变量(static修饰)

//------------------------

//成员方法/行为
//1.非静态成员方法
//2.静态成员方法
}

2.成员变量(非静态)

在类中定义的成员变量的同时可以就地初始化,也可以不初始化,系统会自动初始化默认值,关于默认值,有一张图表如下:
在这里插入图片描述

其次,在Java的语法规定中,不能直接在类的主体中包含可执行语句,也就是下面代码的第四行就是错误的操作。

public int age;//系统默认初始化 0
public String color;//系统默认初始化 null
public String name = "大黄";//就地初始化
color = "黄色";//错误示范

3.成员方法(非静态)

成员方法在类中定义好后,格式还是和往常一样,标明返回值,方法名,形参列表,而且可以在方法内部调用类中的成员变量。

  public void bark() {
        System.out.println(name + "正在汪汪汪!");
    }
    public void wag() {
        System.out.println(age + "岁的" + color + "色的" + name + "正在摇尾巴!!");
        
    }

三、实例化对象

在完成了类的定义和完善之后,就可以实例化一个一个的对象了,类和对象的关系就是对象通过类似模具一样的类,得到属于该类的对象。

1.new关键字

实例化对象最主要的是通过new关键字,可以在堆上开辟一块空间,专门来储存这个new出来的对象,同时我们需要拿类名定义的引用,这个引用的位置在栈空间上开辟了一处内存,里面存储了对象的引用也就是地址,拿这个引用来接收地址,并且我们可以通过new,实例化出很多个对象,代码如下:

 public static void main(String[] args) {
        Dog dog1 = new Dog();
        Dog dog2 = new Dog();
    }

2.通过对象调用成员

我们可以通过实例出来的对象通过.操作符来访问该对象内部的成员,若有多个对象,每个对象都是一个独立的空间,都有自己的成员。

 Dog dog1 = new Dog();
        Dog dog2 = new Dog();
        dog1.name = "阿黄";
        dog2.name = "小黑";
        dog1.bark();
        dog2.bark();

运行结果如下:

在这里插入图片描述

通过打印两个对象引用,会得到两个地址,证明在内部空间真实存在两个对象

        System.out.println(dog1);
        System.out.println(dog2);

在这里插入图片描述

内部大概储存原理如下:
在这里插入图片描述


总结

这篇文章介绍了类和对象的概念和关系,以及一些语法规则和内部空间分布,不过关于类和对象的知识点还未整理完,剩余部分留在下篇。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值