面向对象基础-02

JAVA中数据类型的划分

JAVA中所有的数据分为两种类型

1.基本数据类型:四类八种 byte short int long float double char boolean

基本数据类型也称为 值类型 这种类型的变量或数组中存储的就是我们想要的数据本身

值类型对应为直接访问

2.引用数据类型:这种类型中存储不是我们想要的数据而是一个地址【对象才有地址】,因此引用数据类型也称为对象类型

对于数组来说,所有引用类型的元素默认为null【空地址】


// 创建一个学生类型的对象数组

Student[] students = new Student[3];

//		students[0].name="张三";
//		
//		System.out.println(students[0].name);
//		
Scanner input = new Scanner(System.in);

for (int i = 0; i < students.length; i++) {

    students[i] = new Student();

    System.out.print("输入第" + (i + 1) + "个学生的学号:");

    students[i].sno = input.next();
    System.out.print("输入第" + (i + 1) + "个学生的姓名:");

    students[i].name = input.next();
    System.out.print("输入第" + (i + 1) + "个学生的性别:");

    students[i].gender = input.next();
    System.out.print("输入第" + (i + 1) + "个学生的年龄:");

    students[i].age = input.nextInt();

}
//循环输出每个学生的信息
for (int i = 0; i < students.length; i++) {
    System.out.println("学号:" + students[i].sno + ",姓名:" + students[i].name + ",性别:" + students[i].gender + ",年龄:" +  students[i].age);
}

方法的返回类型为引用对象

public class Test04 {
	public static void main(String[] args) {
		
		Pack result= test();	
		
		System.out.println(result.a);
		System.out.println(result.b);
		System.out.println(result.c);		
	}
	
	public static Pack test() {		
		String a = "hello";
		int b =78;
		double c=90.5;		
		Pack pack=new Pack();
		pack.a=a;
		pack.b=b;
		pack.c=c;
		
		return pack;		
	} 
}

局部变量和成员变量的区别

局部变量:定义在一个方法的内部

成员变量:类的属性,定义在所有方法之外的,直接定义在类中

区别:

  • 定义的位置不同

  • 作用范围不同:局部变量只能在当前定义的方法中被访问,成员变量可以在当前类的所有方法中被访问【共享】

  • 生命周期:局部变量在方法被调用时分配空间,分配的位置在JVM的栈内存中,在方法执行结束后立即马上销毁,成员变量在创建当前类的对象时分配空间,分配的位置在堆中,成员变量在对象成为垃圾的时候销毁

  • 默认值不同:局部变量没有默认初始化的操作,成员变量在分配完空间之后由系统自动的完成初始化操作

    默认值规则:根据变量的类型 

  • 构造方法

构造方法也是类中的一种方法,也称为构造器,我们可以认为它是一种特殊的方法

和普通的方法不同:

1.从作用上来说:普通的方法的作用是用来完成软件中的某一个具体的业务功能,而构造方法的作用和软件的实际业务无关,它主要是关注当前类的对象的创建,简单的说构造方法就是用来创建当前类的对象的

2.从定义的语法上来说有两点不一样:a.构造方法的方法名必须和类同名 b.构造方法无返回类型【注意和void的区别】,方法的参数和方法体的设计和普通方法无异

3.调用的语法也不一样:类中普通的方法需要通过 对象名.方法名()的方式调用,构造方法需要通过new 关键字去调用 。

如果一个类没有构造器,则该类将无法实例化对象

当类中没有单独创建构造方法时,系统会默认给该类添加一个无参并且方法体为空的构造器,一般构造方法写在所有的普通方法之前

无参构造方法的作用:1.根据类的加载信息【类加载的过程由JDK提供的一个组件 类加载器 ClassLoader自动完成 被动加载】在堆中创建一块空间,对该类的属性进行默认的初始化工作,在将对象的地址返回。

当类中定义了有参构造方法,构造方法能够按照调用者的要求进行对象的初始化,构造方法中的this表示当前正在创建的对象

当方法中的局部变量和类中的成员变量同名了,方法体中根据就近原则优先访问方法中的局部变量,如果非要方法成员变量必须在变量名前加上this.

public   Student(String name,String gender,int age,double score) {
		
		//1.根据类的信息在堆中分配空间【JAVA从语法层面无法实现的,需要调用底层的语言 C 进行操作】
		//2.默认属性初始化
		this.name=name;
		this.gender=gender;
		this.age=age;
		this.score=score;
}

### 回答1: 7-6 jmu-java-03面向对象基础-02-构造方法与初始化块是一门Java编程课程,主要讲解面向对象编程中的构造方法和初始化块的概念、使用方法和注意事项。通过学习这门课程,可以更好地理解Java中的面向对象编程思想,掌握构造方法和初始化块的使用技巧,提高Java编程能力。 ### 回答2: 面向对象编程中,我们经常需要创建多个对象,每个对象都有各自独有的属性和方法。在创建对象的过程中,我们需要对对象进行初始化,即设置对象的属性和调用对象的方法。在Java编程语言中,构造方法和初始化块是两种非常重要的初始化对象的方式。 构造方法是一种特殊的方法,可以在创建对象时调用,用于初始化对象的属性和执行一些必要的操作。构造方法和类名必须相同,并且没有返回值。在构造方法中,我们可以设置对象属性的默认值,传入参数初始化对象属性的值,或执行一些其他的操作。如果没有定义构造方法,Java会自动添加一个无参构造方法。 初始化块是在类加载时执行的一段代码块,可以用于初始化静态属性或实例属性。初始化块可以有多个,按照定义的顺序执行,并且可以包含任意合法的Java语句。静态初始化块只会在类加载时执行一次,而实例初始化块则在对象创建时每次都会执行一次。 构造方法和初始化块都是在对象创建时进行初始化的过程,但是两者还是存在一些区别。首先,构造方法只能用于初始化实例属性,而初始化块既可以初始化静态属性也可以初始化实例属性。其次,构造方法可以接受参数,根据传入的参数初始化实例属性的值,而初始化块不能接受参数。 在实际编程中,我们需要根据实际需求选择合适的初始化方式。如果只需要初始化实例属性,可以使用构造方法来进行初始化;如果还需要初始化静态属性,可以使用静态初始化块;如果需要在创建对象时执行一些复杂的操作,可以使用初始化块。通过灵活使用构造方法和初始化块,我们可以更好地进行对象初始化,提高程序的性能和可维护性。 ### 回答3: 在Java类中,构造方法和初始化块都是用来初始化对象的。它们可以执行变量初始化、方法调用和其他操作。本篇文章将主要介绍构造方法和初始化块的区别和作用。 构造方法 构造方法是一种特殊的方法,其作用是创建对象时初始化对象的状态。每个类都至少拥有一个构造方法,并且构造方法的名称必须与类名相同。构造方法没有返回类型,并且不能被声明为final、static或abstract。在Java中,构造方法有以下特点: 1. 构造方法没有返回类型 2. 构造方法的名称必须与类名完全相同 3. 构造方法可以重载,即同一个类中可以定义多个不同的构造方法,只需要使用不同的参数列表即可 4. 如果没有定义构造方法,则Java编译器会为类自动添加一个默认的构造方法 构造方法的作用主要有两个: 1. 初始化实例变量:构造方法可以在对象创建时给实例变量赋初值,为了方便,在Java中,经常将对象属性的初始化操作放到构造方法里实现。 2. 对象创建时执行的操作:构造方法可以执行一些对象创建时必要的操作,比如打开文件、建立网络连接等操作。 初始化块 初始化块是一个没有任何修饰符的代码块,它可以出现在类中的任何地方。初始化块在对象创建时执行,它可以用来对静态属性或实例属性进行初始化。初始化块的主要作用是为类实例的属性提供默认值。 在Java中,初始化块有以下特点: 1. 初始化块没有任何修饰符。 2. 初始化块不像方法一样需要被调用,它会在类被加载时自动执行。 3. 初始化块可以定义多个,且执行顺序按照定义的顺序执行。 4. 初始化块和构造方法的区别是:构造方法是为了初始化对象时的属性值,而初始化块是为了初始化对象创建时必要的操作。 总结 构造方法和初始化块都是用来初始化对象,在Java中,构造方法主要用来在对象创建时初始化实例变量或执行一些必要的操作,初始化块主要用来为类实例的属性提供默认值。它们的主要区别在于: 1. 构造方法是构造对象的,初始化块是初始化对象的。 2. 构造方法是有参数的,而初始化块是没有参数的。 3. 构造方法必须显式地被调用,而初始化块则是在类被加载时自动地执行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值