欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

07初识面向对象(对象与类的关系、构造函数、this关键字)

程序员文章站 2022-07-10 18:57:08
初识面向对象1.万物皆对象对象:用来描述客观事物的一个实体,由一组属性和方法构成万物皆对象是指我们生活中,或者自然界中任何事物都可以理解为一个对象。2.类Java程序以class(类)为组织单元class关键字定义自定义的数据类型,也是引用数据类型3.类和对象的关系类是对象的抽象,对象是类的具体类相当于一个模板,我们可以通过模板创建N个不同的对象对象是真真实实存在的实体1.类的组成:​属性:一些事物共有的特征,我们称之为属性。​方法:一些事物共有的行为,我们称之为...

初识面向对象

1.万物皆对象

对象:用来描述客观事物的一个实体,由一组属性和方法构成

万物皆对象是指我们生活中,或者自然界中任何事物都可以理解为一个对象。

2.类

Java程序以class(类)为组织单元

class关键字定义自定义的数据类型,也是引用数据类型

3.类和对象的关系

类是对象的抽象,对象是类的具体

类相当于一个模板,我们可以通过模板创建N个不同的对象

对象是真真实实存在的实体

1.类的组成:

​ 属性:一些事物共有的特征,我们称之为属性。

​ 方法:一些事物共有的行为,我们称之为方法。

4.类和对象的创建以及对象的使用

1.创建类:

​ (1)先分析当前这一类事物有哪些共有的特征,分析为属性,直接写在类内部.

​ (2)再分析当前这一类事物有哪些共有的行为,分析为方法,直接写在类内部.

2.创建对象:

​ 在main方法中通过new关键字来创建对象

类名 对象名 = new 类名();

3.使用对象:

访问对象的属性:对象名.属性;

访问对象的方法:对象名.方法;

5.局部变量与实例变量的区别

局部变量(方法内):要求必须先赋值再使用,否则编译错误。而实例变量没要求

实例变量(又称成员变量、属性):

​ (1)书写位置:直接书写在类内部

​ (2)存放位置:实例变量存放在堆中

​ (3)生命周期:随着对象的创建而生效,随着对象被垃圾回收器回收而失效。

局部变量 成员变量
定义位置 方法或方法内的结构当中 类的内部,方法的外部
默认值 无默认值 有默认值(与数组相同)
使用范围 从定义行到包含其结构结束 本类有效
命名冲突 不允许重名 可与局部变量重名,局部变量优先
生命周期 随着方法的入栈(压栈)而生效,随着方法的出栈(弹栈)而死亡 随着对象的创建而生效,随着对象被垃圾回收器回收而失效。

07初识面向对象(对象与类的关系、构造函数、this关键字)

6.构造方法

1.概念

​ 构造方法是用于创建对象的,我们默认创建使用的就是无参构造方法,无参构造方法是默认存在的

如果书写了有参构造方法,那么无参构造方法将被覆盖。

​ 如果要继续使用无参构造方法,必须显式的声明。

2.定义格式:

​ 访问修饰符 + 类名(形参列表){}

3.构造方法重载:

​ 同一个类中

​ 形参列表不一致,包括参数的个数、类型、顺序。

//java中方法名可以和类名一致,但一定有返回值,且不建议这样写
//定义构造方法时也可定义不是属性的参数

this关键字的用法:

1.使用场景:

​ (1)访问属性,直接使用this.属性 即可

​ (2)访问方法,直接使用this.方法 即可

​ (3)访问构造方法,this(形参列表) 即可。必须在构造方法的第一句,并且只能有一个。

package com.qfedu.test2;
/**
 * 	无参构造方法默认存在 但是如果书写了有参构造方法 那么无参将被覆盖
 *	 如果想要使用无参构造 那么必须显式的书写
 *	this关键字
 *	属性 
 *	方法
 *	构造方法 
 * @author WHD
 *
 */
public class Student {
	String name;
	int age;
	String address;
	String stuNo;
	String idCrad;
	
	public Student(String name , int age , String address) {
		this(name);
		this.address = address;
		this.age = age;
	}
	
	public Student(String name,int age,String address,String stuNo ,String idCard) {
		this(name, age, address);
		this.stuNo = stuNo;
		this.idCrad = idCard;
	}
	
	public Student(String name) {
		this.name = name;
	}
	
	public Student(int age) {
		this.age = age;
	}
	
	public Student(String address,String name) {
		this.address = address;
		this.name = name;
	}

	public void printName() {
		System.out.println("学生的名字是" + name);
	}
	
	public void printAge() {
		System.out.println("学生的年龄是" + age);
	}
	
	public void printAddress() {
		System.out.println("学生的地址是" + address);
	}
	
	/**
	 * 	当前方法用于打印所有的学生信息
	 */
	public void printInfo() {
		printAddress();
		this.printAge();
		this.printName();
	}

	public Student() {}
	
	public static void main(String[] args) {
		// 无参构造方法默认存在 但是如果书写了有参构造方法 那么无参将被覆盖
		// 如果想要使用无参构造 那么必须显式的书写
//		Student stu1 = new Student();
//		stu1.name = "赵四";
//		stu1.age = 17;
//		stu1.address = "象牙山";		
		@SuppressWarnings("unused")
		Student stu2 = new Student("广坤", 17, "象牙山", "zz2356", "410235645789");
	}
}	

每日问题

1.类和对象什么关系
2.什么是属性和方法
3.普通方法的定义格式
4.什么是形参,什么是实参
5.怎样创建对象
6.怎样访问对象的属性和方法
7.本类中的方法可以互相调用吗
8.main方法能直接访问对象的属性和方法吗
9.你怎么理解万物皆对象
10.局部变量和实例变量的区别
11.构造方法重载的要求
12.this关键字可以访问那些内容,如何访问?

解答

1.类和对象什么关系
类是对象的抽象
对象是类的具体
2.什么是属性和方法
属性是对象共有的特征
方法是对象共有的行为
3.普通方法的定义格式
访问修饰符 + 返回值类型 + 方法名称
4.什么是形参,什么是实参
形参:定义方法的时候定义的参数,只有定义,相当于局部变量
实参:实际传入的值
5.怎样创建对象
类名 对象名 = new 类名();
6.怎样访问对象的属性和方法
对象名+ . 访问属性和方法
7.本类中的方法可以互相调用吗
可以互相调用
8.main方法能直接访问对象的属性和方法吗
不能直接访问,必须先创建对象,静态方法不能直接访问非静态的属性和方法
9.你怎么理解万物皆对象
一切事物都可以看做是对象,可以分析出特征和行为
10.局部变量和实例变量的区别
局部变量:定义在方法中,只在本方法中生效,局部变量基本数据类型在栈中,没有默
认值
实例变量:属性,直接定义在类中,本类中都可以访问,有默认值,跟数组一致
11.构造方法重载的要求
形参列表不一致(个数、类型、顺序)
12.this关键字可以访问那些内容,如何访问
属性,直接加点访问 this.属性名
方法 同上 this.方法名
构造方法 this(形参列表)

本文地址:https://blog.csdn.net/zitian246/article/details/107674573