• java面向对象(一)


    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

    提示:以下是本篇文章正文内容,下面案例可供参考

    一、设计类

    1. 设计类,其实就是设计类的成员
    创建类的对象 = 类的实例化 = 实例化类
    属性 = 成员变量 = field = 域 、字段
    方法 = 成员方法 = 函数 = method
    
    • 1
    • 2
    • 3
    1. 如果创建了一个类的多个对象,则每个对象都独立的拥有一套类的属性(非static),意味着,如果我们修改一个对象的属性a ,则不影响另外一个对象属性a的值。

    2. 将变量p1保存的对象地址赋值给p3,导致p1 p3指向了堆空间中的同一个对象实体。

    3. 如图所示:在这里插入图片描述

    4. 代码块

    public class PersonTest {
    public static void main(String[] args) {
    	//创建类的对象 = 类的实例化 = 实例化类
    	Person person = new Person();
    	person.name = "Tom";
    	person.age = 18;
    	System.out.println(person.name);
    	person.talk("Chinese");
    	
    	Person person2 = new Person();
    	System.out.println(person2.name);
    	System.out.println(person2.ismale);
    	
    	//将p1变量保存的对象地址值赋值给p3,导致p1和p3指向了堆空间中的同一个对象实体
    	Person person3 = person;
    	System.out.println(person.name);
    	person3.age = 10;
    	System.out.println(person.age);
    }
    }
    
    class Person{
    	
    		//属性
    		String name;   //默认初始化值null
    		int age = 1;
    		boolean ismale;    //默认初始化值false
    
    		//方法
    		public void eat()
    		{
    			System.out.println("人可以吃饭!");
    		}
    		public void sleep()
    		{
    			System.out.println("人可以睡觉!");
    		}
    		public void talk(String language)
    		{
    			System.out.println("人可以说话,使用的是:"+language);
    		}
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    二、对象的内存解析

    1.阐述

    堆:此内存区域唯一的目的就是存放对象实例,所有的对象实例以及数组都要在堆上分配

    栈:存储局部变量,它不等同于对象本身,是对象在堆内存的首地址。

    2.具体描述

    在这里插入图片描述

    三、属性(成员变量) vs 局部变量

    1.相同点

    • 1.相同点:
    • 1.1 定义变量的格式:数据类型 变量名 = 变量值
    • 1.2 先声明,后使用
    • 1.3 变量都有其对应的作用域

    2.不同点

    • 2.1 在类中声明的位置不同
    • 属性:直接定义在类的一对{}中
    • 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
    • 2.2 关于权限修饰符的不同
    • 属性:可以在声明属性时,指明其权限,使用权限修饰符
    • 常用的权限修饰符:private public 缺省 protected ---->封装性
    • 局部变量:不可以使用权限修饰符
    • 2.3 默认初始化值的情况
    • 属性:类的属性,根据其类型,都有默认初始化值
    •         整型(byte   short    int  long ):0
      
      • 1
    •         浮点型 (float  double)   0.0
      
      • 1
    •         字符型(char),0 或\u0000
      
      • 1
    •         布尔型(boolean)  false
      
      • 1
    •         引用数据类型(类、数组、接口)  null
      
      • 1
    • 局部变量:没有默认初始化值。
    •  	在调用局部变量之前,必须要显示赋值
      
      • 1
    •  	形参在调用时,赋值即可。
      
      • 1
    • 2.4 在内存中加载的位置:
    • 属性:加载到堆空间(非static)
    • 局部变量:加载到栈空间。

  • 相关阅读:
    回Mixlab三天,“创造力团队”治好了我的精神内耗
    第七章:最新版零基础学习 PYTHON 教程—Python 列表(第二节 -Python 创建具有给定范围的数字列表)
    【系统概念】容错、高可用和灾备
    浮点型数据在内存中是如何存储的
    02.初识C语言2
    使用VMware虚拟机安装Red Hat Enterprise Linux8/9教程
    javaScript关于闭包的理解
    Avanci与现代汽车和起亚签署专利许可协议
    企业员工人事管理系统(数据库课设)
    target is not existed: .page-component__scroll .el-scrollbar__wrap
  • 原文地址:https://blog.csdn.net/lalalalalab/article/details/132896407