09类和对象

面向对象-类和对象

数据存储方面:

​ **变量:**只能存储一个 如果内容多了 存储起来需要定义n个变量 麻烦

​ **数组:**可以存储一组相同数据类型的数据。

数据类型相同:

​ 如果用数组存储一个人的信息/比较丰富的信息的话,不太方便。

​ 例如:吃货联盟中存储订单和菜品信息。

​ 纵向数组:我们定义了好多个数组,认为不同数组中,索引相同的数据,都是同一个信息。

升级:不方便,所以想存储更多元化的数据,我们这阶段学习对象,它可以存储数据。

​ **长度不可变:**未来第三阶段要学习集合,它可以解决这问题。

对象:

编码方面:(程序的架构)

​ **面向过程开发:**想让它干嘛,你就写对应的代码。你在写吃货联盟的时候,需要展示菜品或订单信息,你就将那一堆的代码,放那儿就可以了。(代码无法重用,扩展性差,可维护性差,阅读性差)

面向方法/功能/函数开发: 本阶段我们会将以前重复的代码,按功能切分,抽取成为一个方法。以后直接调用方法即可快速实现功能。

面向对象开发(OOP): (陈鑫卖煎饼->升职加薪->迎娶高富帅开酒店)

1. 掌握类和对象的关系

什么是对象?

万物皆对象。你身边的任何一个,你可以叫的出名或者可以单独区分出来的一个实体,它就是对象。

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

​ **属性(特征):**描述一个对象的信息。

​ 例如:姓名、年龄、性别、游戏中的法防、物防、法功、家族、帮派、称号…

​ **方法(操作):**描述一个对象的行为。

​ 例如:猫吃鱼、狗吃肉、奥特曼专打小怪兽。

什么是类?

**类:**人类、鸟类、非人类,分类…

​ 由一组具有相同属性(不是指属性值一样,而是指属性名,例如:学生对象都有姓名、年龄等属性)和相同行为的对象中抽取出来的一个抽象的概念(分类)。

**类和对象的关系:**类是一个模板,对象是类的一个具体实例。

程序中对象和类

**编程:**将现实生活中的场景以计算机指令的形式描述出来。

Java是一个完全面向对象的编程语言。(因为Java中有基本数据类型 byte short int long float double boolean char…)。

所有的Java程序都是以类为组织单元。

2. 掌握如何定义类(对象的模板)

类是一个引用数据类型。

一个类并不是必须要有main方法!main方法是程序的入口!一个程序只要有一个main方法作为程序入口即可!(大门只有一个!)

public class 类名{
    // 一组属性
    
    // 一组方法
}
public class HelloWorld{
    public static void main(String[] args){
        syso(xxx);
    }
}
/**
 * 学生类  是学生对象的一个模板
 * @author Charles7c
 * 2019年1月9日 下午2:57:22
 */
public class Student {

	// 一组属性/成员变量/[实例(对象)]变量
	/** 姓名 */
	public String name;
	/** 年龄 */
	public int age;
	/** 体重 */
	public double weight;
	/** 学号 */
	public int id;
	
	// 一组方法/成员方法
	/** 学习 */
	public void study() {
		System.out.println(name+"在学习!");
	}
	
	/** 自我介绍 */
	public void printInfo() {
		System.out.println("姓名:"+name);
		System.out.println("年龄:"+age);
		System.out.println("体重:"+weight);
		System.out.println("学号:"+id);
	}
	
}

在Eclipse中,Ctrl+Shift+T 可以全局搜索类。

注意事项:

1.  一个.java文件中可以定义多个类,但是只能有一个类被public修饰,被public修饰的类,它的类名和文件名保持一致。(在无特殊情况一个.java文件只写一个类)
2.  一个类并不是必须要有main方法,同样一个类也不是必须要有一堆属性和一堆方法,这些属性和方法到时候是根据我们的需求决定。
3.  定义类的信息时候也要注意好对齐和规范。

3. 掌握如何定义对象

语法:类名 对象名 = new 类名();

public class Test {

	public static void main(String[] args) {
		
		// 创建对象
		// Scanner scanner = new Scanner(System.in);
		// 创建学生对象
		Student stu = new Student();
		// 创建老师对象
		Teacher teacher = new Teacher();
		
		// 给对象的属性赋值(存储一些信息)
		stu.name = "布俊彪";
		stu.age = 18;
		stu.id = 700;
		stu.weight = 180;
		
		// 给老师信息赋值
		teacher.name = "邢老师";
		teacher.major = "COT";
		teacher.gender = '女';
		teacher.teachAge = 30;
		
		// 使用属性值
		System.out.println(teacher.name);
		// 调用方法
		stu.printInfo();
		stu.study();
		System.out.println("----------------------");
		teacher.printInfo();
		
	}

}

4. 熟悉基本的方法定义(下一章才是重点)

**方法:**就是一个代码的组合,是一个功能。

// 通过用户名和密码获取用户信息

getUserByUsernameAndPassword()

初识方法的基本的语法:

权限修饰符  返回值类型  方法名(){
    // 方法体
}

今天我们学习的方法 没有返回值类型,没有返回值类型的话 定义为void(空、无效的)

方法调用的注意事项:

1. 同一个类中(不包含static情况),调用方法只需要直接写`方法名();`即可。同一个类中,你都看到它了,调用一下很简单。
2. 不同的类中(不包含static情况),方法间相互调用,需要先创建对象,然后`对象名.方法名();`不同类中,你不创建对象,我怎么知道你是谁的方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值