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

初识面向对象

1.万物皆对象

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

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

2.类

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

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

3.类和对象的关系

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

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

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

1.类的组成:

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

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

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

1.创建类:

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

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

2.创建对象:

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

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

3.使用对象:

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

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

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

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

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

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

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

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

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

在这里插入图片描述

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(形参列表)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值