韩顺平零基础Java(超详细笔记梳理) 06——面向对象编程基础(上):类与对象、成员方法、传参机制、对象克隆、递归(斐波那契、迷宫、汉诺塔、八皇后)


前言

从本篇开始,我们就真正接触到Java的核心——面向对象,我们的java学习之路也算是正式踏上旅途,所以本章的所有概念和内容都十分重要,特别是其中的思想一定要好好领悟。

受篇幅限制,面向对象的笔记我分成了上下部分,本篇文章是韩顺平老师课程P192-P226(第7章:面向对象编程基础)上半部分重点内容的详细总结。

  1. 类与对象
  2. 成员方法
  3. 成员方法传参机制
  4. 克隆对象
  5. 方法递归调用

一、类与对象

1. 类与对象的概述

  • 一个程序就是一个世界,这个世界里有很多事物(对象),每个对象都有自己的属性和行为
  • 例如:我们假设把小狗看作一个对象,那么它有:
    • 属性:性别、品种、年龄、体重…
    • 行为:进食、叫、跑…
  • 类与对象关系示意图
    在这里插入图片描述

2. 快速入门(用面向对象的方式解决问题)

public class Object {
   
	public static void main(String[] args) {
   
		//3.实例化一只猫 创建一只猫
		//4.把创建的猫赋给 cat1(对象)
		Cat cat1 = new Cat();
		cat1.name = "小白";
		cat1.age = 3;
		cat1.color = "白色";

		Cat cat2 = new Cat();
		cat2.name = "小花";
		cat2.age = 100;
		cat2.color = "花色";

		//使用
		System.out.println("第一只猫的信息:" + cat1.name + " " 
			+ cat1.age + " " + cat1.color);
		System.out.println("第二只猫的信息:" + cat2.name + " " 
			+ cat2.age + " " + cat2.color);
	}
}
//1.定义一个猫类
class Cat {
   
	//2.属性 名字,年龄,颜色
	String name;
	int age;
	String color;
}

3. 对象在内存中的存在形式(重要)

  • 对象和数组一样,都是引用类型,所以在jvm中都是一个地址
  • 三个属性,所以在堆中cat类地址下有三个区域(分配空间)
  • 字符串本质上是引用类型,以地址形式存放在堆中
    • 存放“小白”和“白色”这两个数据的地方是方法区的常量池里面
  • 年龄是基本数据类型,所以直接存放在堆中
  • 同时会在方法区中加载cat类的信息,包括这个cat类中的各种属性信息和方法信息
    在这里插入图片描述

4. 属性

  • 概念
    • 属性也叫做成员变量filed(字段)
    • 属性是类的一个组成部分,一般是基本数据类型,也可是引用类型(对象,数组)
      在这里插入图片描述
  • 细节
    • 属性的定义语法与变量一样,只是在前面会多一个访问修饰符(后期讲到包的时候讲)
      • 访问修饰符:控制属性的访问范围, 有四种访问修饰符 public, proctected, 默认, private
        访问修饰符 属性类型 属性名;
    • 属性的定义类型可以为任意类型,包含基本类型或引用类型
    • 属性如果不赋值,有默认值,规则和数组一致。
      int-0,short-0, byte-0, long-0, float-0.0, double-0.0
      char-\u0000,boolean-false,String-null
  • 理解:p1只是这个对象的名字(代词),真正的对象其实是new person()语句所创建的空间
    在这里插入图片描述
  • 创建对象访问属性
    • 如何创建对象
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值