Java基础——Day09——什么是面向对象和方法重载

Day 09笔记

一、面向对象概述(了解)

  • 面向对象
    • 是一种编程思想,是发展到一定阶段后产生的
    • 我们有程序的编写者、执行者转换为调用者、指挥者
  • 面向过程
    • 编程思想
    • 注重自己实现的过程
    • 一组具有相同或者相似属性、行为事务的统称
    • 是对象的抽象
  • 对象
    • 现实世界中具体存在的实物
    • 是类的具体描述

二、类的创建(掌握)

  • 创建一个类需要关注的点
    • 类名
      • 这个类的名字
    • 属性
      • 这一群对象共有的一些特征
      • 可以使用名词提炼法
    • 方法
      • 一群对象所共有的行为
      • 编写成方法
      • 目前不用加static
package com.qf.cls;

/**
 * 创建Dog类
 * 	抽取狗子的特征,定义为属性
 * 	抽取狗子的行为,定义为方法
 * @author Dushine2008
 *
 */
public class Dog {
	// 属性--品种-哈士奇、年龄-3、名字-道哥、颜色-黑白
	String breed;
	int age;
	String name;
	String color;
	
	// 方法
	public void eat(String food) {
		System.out.println("狗子喜欢吃:" + food);
	}
	
	public void sleep(int hour) {
		System.out.println("我们家的狗子每天睡觉时长是" + hour);
	}
	
}

三、对象的创建(掌握)

  • 类是对象的模板,可以使用类创建出无数个具体的对象
  • 类名 对象名 = new 类名(参数列表);
package com.qf.cls;

public class DogTest {
	public static void main(String[] args) {
		Dog dog = new Dog();
		// 调用方法
		dog.eat("骨头");
		dog.sleep(8);
		
		// 调用属性,属性如果没有提前赋值,得到的是默认值
		int age = dog.age;
		System.out.println(age);
		
		// 给dog的属性赋值
		dog.breed = "哈士奇";
		dog.name = "二哈";
		dog.age = 3;
		dog.color = "黑白";
		
		// 调用dog的属性
		System.out.println("狗子的品种是:" + dog.breed);
		System.out.println("狗子的名字是:" + dog.name);
		System.out.println("狗子的年龄是:" + dog.age);
		System.out.println("狗子的颜色是:" + dog.color);
	}
}

四、创建多个对象(掌握–自己画图描述对象创建的过程)

  • 一个类是多个对象的模板
  • 一个类可以创建很多个对象
package com.qf.cls;

public class CarTest {
	public static void main(String[] args) {
		// 创建对象
		Car car = new Car();
		
		// 给对象的属性赋值
		car.brand = "比亚迪*唐";
		
		// 调用对象的方法
		car.start("摇把");
		car.run(200);
		
		Car jili = new Car();
		jili.brand = "cheey";
		jili.maxSpeed = 220;
		
		jili.start("一键启动");
		jili.run(120);
		
	}
}

/**
 * Car类
 * @author Dushine2008
 *
 */
class Car{
	// 属性
	String brand;
	String color;
	int price;
	int maxSpeed;
	
	
	// 方法
	public void start(String func) {
		System.out.println(brand + "的车子启动的方式是:" + func);
	}
	
	public void run(int speed) {
		System.out.println("车子目前的速度是:" + speed);
	}
}
创建单个对象的过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rrkxmnHx-1597023412311)(对象创建和属性赋值过程.png)]

创建多个对象的过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UfzRc2r6-1597023412319)(多个对象创建和属性赋值过程.png)]

五、局部变量和实例变量(掌握)

类型局部变量实例变量
定义位置方法内部类中方法外
存储位置栈内存堆内存
默认值无,必须先赋值在使用有默认值,和数据类型有关
作用范围整个方法整个类
生命周期创建到方法执行结束随着对象创建而创建,对象消失而消失
命名冲突方法中不能存在重名变量可以和局部变量重名,局部变量优先级高

六、实例方法(掌握)

  • 创建对象后可以使用对象调用的方法
  • 定在类中方法外
  • 每一个方法都是独立的,不能书写在其他方法中
  • 实例方法不能使用static修饰
    • 因为使用static修饰的方法成为类方法

6.1 案例

  • 实体类–Student
package com.qf.cls;

/**
 * 学生类
 * 	定义了学生的属性
 * 	定义了sayHi和show方法
 * @author Dushine2008
 *
 */
public class Student {
	// 属性  
	String name;
	int age;
	String gender;
	double score;
	
	/**
	 * 见面打招呼的方法
	 * @param word	打招呼的内容
	 */
	public void sayHi(String word) {
		System.out.println("我是一个好学生,我们见面都会说:" + word);
	}
	
	/**
	 * 展示自己信息的方法
	 */
	public void show() {
		System.out.println("我的名字是:" + name + ",我的今年" + age + ",我是" + gender + ",我这次考试的成绩是:" + score);
	}
}	

  • 测试类TestStudent
package com.qf.cls;

public class TestStudent {
	public static void main(String[] args) {
		// 创建学生对象stu01
		Student stu01 = new Student();
		stu01.name = "张飞";
		stu01.gender = "汉子";
		stu01.age = 16;
		stu01.score = 33;
		
		stu01.sayHi("我乃燕人张翼德");
		stu01.show();
		
		// 创建学生对象stu02
		Student stu02 = new Student();
		stu02.name = "关羽";
		stu02.gender = "壮士";
		stu02.age = 17;
		stu02.score = 88;
		
		stu02.sayHi("打死你个鳖孙!!!");
		stu02.show();
	}
}

七、方法的重载(掌握)

  • 在同一个类中出现了名字相同的方法
    • 他们的参数列表不同
    • 和返回值、修饰符无关
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值