面向对象所学内容笔记

这篇博客详细介绍了面向对象的概念,包括对象、类、属性、对象实例化、内存模型、静态与非静态方法的区别、成员变量与局部变量、匿名对象、封装、访问修饰符、构造方法、构造代码块、包装类的自动装箱与拆箱、继承和内部类的相关知识。通过实例解析了类的使用和对象的生命周期,适合Java初学者学习。
摘要由CSDN通过智能技术生成

面向对象

1. 对象的概念

万物皆对象 客观存在的事物都是对象

2.类

1)什么是类?
类定义了一种抽象的数据类型
类就是模板 确定对象将会拥有的特征(属性)和行为(方法)

2)类的特点
类就是对象的类型
具有相同属性和方法的一组对象的集合

3. 什么是对象的属性?

1)属性:对象具有的各种特征
2)每个对象的每个属性都拥有特定值
如:手机类
属性:屏幕尺寸、内存。。。
注:对象的属性拥有默认值,这个默认值与相应的类型对应
例如: int默认值为0,boolean默认值为false,引用类型默认值为null

4. 类的实例化对象

@Test
	public void test01() {
   
		// 实例化Dog这个类
		// dog 是 Dog类实例化的对象
		Dog dog = new Dog();
	}

5. 对象的内存模型

问: dog01是否等于dog02?

public void test02() {
   
		// 实例化Dog这个类
		// dog 是 Dog类实例化的对象
		Dog dog01 = new Dog();
		Dog dog02 = new Dog();
		com.lihaozhe.day16.bean.Dog@1eb5174b
		com.lihaozhe.day16.bean.Dog@67080771

因为dog01和dog02在内存里边是两个不同的内存空间所以 不等于。

6.静态方法和非静态方法的调用

	/**
	 * 静态方法
	 */
	public static void sleep() {
   
		System.out.println("我在睡觉");
	}
	
	
	/**
	 * 静态方法
	 */
	public static void eat() {
   
		System.out.println("我在吃饭");
		sleep();
	}
	
	/**
	 * 非静态方法
	 */
	public void drink() {
   
		System.out.println("我在喝水");
	}

静态方法可以通过类名点(.)方法名的方式调用

@Test
	public void test01() {
   
		Person01.sleep();
	}

非静态方法可以通过类的对象名点(.)方法名的方式调用

@Test
	public void test02() {
   
		Person01 person01 = new Person01();
		person01.drink();
		
	}

7.成员变量与局部变量

1). 概念
成员变量 : 在类中定义,用来描述对象将要有什么
没有赋值的成员变量有该数据类型的初始值

局部变量 : 在类的方法中定义,在方法中临时保存数据

2). 成员变量与局部变量的区别

a)作用域不同

  •   -局部变量的作用域仅限于定义它的方法
    
fun01读取不到fun02
public void fun01() {
   
		int a = 10;
		System.out.println("fun01()中a的值 >>> " + a);
	}

	public void fun02() {
   
		int a = 20;
		System.out.println("fun02()中a的值 >>> " + a);
	}

  •   -成员变量的作用域在整个类内部都是可见的
    
fun04、fun05、fun06都可以读取count
public int count;
public void fun04() {
   
		System.out.println("成员变量count的值 >>> " + count);
	}

	public void fun05() {
   
		System.out.println("成员变量count的值 >>> " + count++);
	}

	public void fun06() {
   
		System.out.println("成员变量count的值 >>> " + ++count);
	}

b)初始值不同
* -成员变量有默认的初始值

count默认值为0
public int count;
public void fun04() {
   
		System.out.println("成员变量count的值 >>> " + count);
	}

	public void fun05() {
   
		System.out.println("成员变量count的值 >>> " + count++);
	}

	public void fun06() {
   
		System.out.println("成员变量count的值 >>> " + ++count);
	}
 * 		-局部变量没有默认的初识值,必须自行设定初识值
设定a等于10
public void fun01() {
   
		int a = 10;
		System.out.println("fun01()中a的值 >>> " + a);
	}

c)同名变量的不同
* -在同一个方法中,不允许有同名的局部变量

public void fun01() {
   
		int a = 20;
		int a = 10; //错误
		System.out.println("fun01()中a的值 >>> " + a);
	}
 *   	-在不同的方法中,可以有同名的局部变量
fun01和fun02是两个方法所以可以有两个int a
public void fun01() {
   
		int a = 10;
		System.out.println("fun01()中a的值 >>> " + a);
	}

	public void fun02()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值