类和对象

面向对象-类和对象

数据存储方面:

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

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

	**数据类型相同:**

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

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

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

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

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

对象:

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

**面向过程开发:**想让它干嘛,你就写对应的代码。(代码无法重用,扩展性差,可维护性差,阅读性差)`

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

面向对象开发(OOP): 1)把软件系统看成各种对象的集合

​ 2)系统结构较稳定

​ 3) 子系统相对独立

​ 4)软件可重用性、可维护性和可扩展性强

完美的系统结构: 高内聚、低耦合

高内聚 : 功能类似的代码它们之间聚合在一起

低耦合 : 我修改了一出代码对其他代码几乎无影响

一.掌握类和对象的关系

什么是对象?

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

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

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

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

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

	例如:猫吃鱼、狗吃肉、奥特曼专打小怪兽。
什么是类?

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

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

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

程序中对象和类

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

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

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

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

类是一个引用数据类型。

一个类并不是必须要有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. 定义类的信息时候也要注意好对齐和规范。

三.掌握如何定义对象

语法:类名 对象名 = 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 = "xxx";
		stu.age = 18;
		stu.id = 700;
		stu.weight = 180;
		
		// 给老师信息赋值
		teacher.name = "xxxx";
		teacher.major = "COT";
		teacher.gender = '女';
		teacher.teachAge = 30;
		
		// 使用属性值
		System.out.println(teacher.name);
		// 调用方法
		stu.printInfo();
		stu.study();
		System.out.println("----------------------");
		teacher.printInfo();
		
	}

}

四.熟悉方法定义

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

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

getUserByUsernameAndPassword()

初识方法的基本的语法:

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

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

方法调用的注意事项:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值