栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java复习知识点七:类和对象的关系、对象的赋值机制、基本数据类型和引用类型的传参机制(重点)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java复习知识点七:类和对象的关系、对象的赋值机制、基本数据类型和引用类型的传参机制(重点)

Java复习知识点七:
  • 类与对象
  • 属性
  • 对象的赋值机制
  • 方法
  • 基本数据的传参机制
  • 引用数据类型的传参机制
1、类与对象
  1. 类就是一种自定义数据类型,比如Cat类
  2. 对象就是一个具体的实例

类和对象的区别和联系:

  1. 类是抽象的,概念的,代表一类事物,比如人类,猫类,它是数据类型
  2. 对象是具体的,实际的,代表一个具体事务,即是实例。
  3. 类是对象的模板,对象是类的一个个体,对应一个实例

对象在内存中的存在形式:

2、属性(成员变量)

基本介绍:

  1. 从概念和叫法上看:成员变量 = 属性 = 字段
    • 成员变量是用来表示属性的
  2. 属性是类的一个组成部分,一般是基本数据类型,也可以是引用类型(对象、数组)。

创建对象访问属性:

  1. 先声明再创建

    Cat cat;//声明对象 cat
    cat = new Cat();//创建
    
  2. 直接创建

    Cat cat = new Cat();
    
  3. 访问属性

    对象名. 属性
    cat.name;
    cat.age;
    

属性的细节说明:

  1. 属性的定义语法同变量

    示例:
    访问修饰符 数据类型 变量名;
    public String name;
    
  2. 属性如果不赋值,有默认值,规则和数组一致

3、对象的赋值机制

对象引用之间的赋值,会进行对象地址值的拷贝

如下图:p1和p2 指向同一个对象地址

Java内存的结构分析:

  1. **栈:**一般存放基本数据类型(局部变量)
  2. **堆:**存放对象(Cat cat,数组等)
  3. **方法区:**常量池(常量,比如字符串),类加载信息

Java创建对象的流程简单分析:

Person p = new Person();
p.name = "jack";
p.age = 10;
  1. 先创建Person类信息(属性和方法信息,只会加载一次)
  2. 在堆中分配空间,进行默认初始化,把地址赋给 p,
  3. 进行指定初始化,比如 p.name = “jack”;
4、方法(成员方法)

成员方法 简称 方法,可以理解为 对象的行为

基本语法:

public 返回值类型 方法名(形参列表...){
	//语句;
	return 返回值;
}

方法的调用机制分析:

4.1 注意事项
  1. 一个方法最多有一个返回值
  2. 返回类型可以为任意类型,包含基本数据类型或引用数据类型(数组,对象)
  3. 如果方法要求有返回数据类型,则方法体中最后的执行语句必须为return值,且类型必须一致
  4. 方法名,遵循小驼峰命名,最好见名知意
4.2 形参列表使用细节
  1. 一个方法可以有0个或多个参数,中间用逗号隔开
  2. 参数类型可以为任意数据类型
  3. 方法定义时的参数称为形式参数,简称形参;方法调用时的参数称为实际参数,简称实参。
4.3 方法使用细节
  1. 里面要写功能完整的具体语句
  2. 方法中不能再嵌套方法
  3. 调用同一个类的方法时:直接调用即可,比如:print();
  4. 调用不同类的方法时,需要通过对象名调用,比如:对象名.方法名。
  5. 跨类访问方法,还跟访问修饰符有关。
5、基本数据的传参机制

代码举例:

交换a,b的值

public class MethodParameter01 {

	public static void main (String[] args){
	
		int a = 10;
		int b = 20;

		//创建AA对象
		AA obj = new AA();
		obj.swap(a,b);
		System.out.println("主方法中的值: a=" + a + "b=" + b);
		
	}
}

class AA {

	public void swap(int a, int b){

		System.out.println("交换前的值: a=" + a + "b=" + b);
		int temp = a;
		a = b;
		b = temp;
		System.out.println("交换后的值: a=" + a + "b=" + b);

	}
}

结果:
D:SublimeTestCode>java MethodParameter01
交换前的值: a=10 b=20
交换后的值: a=20 b=10
主方法中的值: a=10 b=20

结论:

在Java中,基本数据类型,传递的是值(值拷贝),形参的任何改变不影响实参!
6、引用数据类型的传参机制

代码举例:

//在BBB类中编写一个方法test100
//可以接收一个数组,在方法中修改该数组,看看原来的数组是否变化
public class MethodParameter02 {

	public static void main (String[] args){

		//定义一个数组
		int[] array = {20,40,60,80};
		//创建BBB类的对象
		BBB obj = new BBB();
		//调用方法
		obj.test100(array);

		System.out.print("主方法中的结果:");
		//循环输出array
		for (int i = 0; i < array.length; i++) {
			System.out.print(array[i] + " ");
			
		}
 	}
}

class BBB{

	public void test100(int[] arr){
		//修改数组中的数据
		arr[1] = 50;
		arr[3] = 90;	

		System.out.print("修改后的结果:");
		//循环输出arr
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.println();
	}
}

输出结果:
D:SublimeTestCode>java MethodParameter02
    修改后的结果:20 50 60 90
    主方法中的结果:20 50 60 90

结果发现:

主方法中的数组arr的值也被修改了

结论:

引用数据类型传递的是地址值(是对地址值的拷贝),形参会影响实参!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/874727.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号