**类和对象**
复习之前的知识开拓新的知识
一 、1.变量:我们知道变量是只能储存一个,如果内容多了,存储起来就会变的麻烦,需要定义多个变量
2.数组:
可以储存一组相同的数据类型的数据
3.如果我们想要储存一个人的信息,比较丰富的信息的话,我们就没有办法使用数组了,
吃货联盟中存储的菜单信息和菜品的信息时候,就是用了数组的纵向的方法来的,定义多个数组,认为不同的数组中,索引相同的就是同一个信息。但是数组的长度一旦固定就没有办法改变。
这样的数组在后来我们想要添加信息的时候我们还的去更改数组的长度,是非常的麻烦的还容易出错,造成数组越界,不利于我们的后续学习发展的使用。
编码方面(程序的架构):
面向过程的开发:我们就是想让程序干嘛,我们就写相应的代码,就像吃货联盟那样!需要什么你就写什么,(面向过程开发有一定的弊端:就是代码无法重复的使用,扩展性差,颗卫星差,阅读性也差)
·*面向方法开发/功能开发/函数开发:
就是我们将以前使用重复的代码,然后按照功能划分,抽取出来一个方法,以后就直接调用即可快速的实现相应的功能,不用你再把同一样的代码再敲一次。
*
面向对象开发:(OOP):自己先上网了解一下
雷和对象先了解一下
、
什么是对象?
万物皆对象。你身边的任何一个事物,只要你能够叫出名的或者可以单独区分出来的一个实体,它就是对象
*对象:描述客观事物的一个实体,它由一组属性和方法构成
*
属性(特征):描述一个对象的信息。
比如:姓名,年龄,身高,体重,性别
方法:(操作):描述一个对象的行为
比如:猫吃鱼,狗吃肉,奥特曼打的是小怪兽
了解一下什么是类
类:人类、鸟类、非人类、
有一组属性相同,行为相同的对象中抽取来的一个抽象的概念,(分类)
类和对象的关系:类是一个模板,对象是一个实体,
程序中的对象和类
*编程:*将现实生活中的场景,以计算机的形式描述出来。
java本来就不是一个完全面向对象的编程语言,(因为java中有基本数据类型byte、short, int long , floaat,,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 可以全局搜索类。
注意事项:
- 一个.java文件中可以定义多个类,但是只能有一个类被public修饰,被public修饰的类,它的类名和文件名保持一致。(在无特殊情况一个.java文件只写一个类)
- 一个类并不是必须要有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 = "布俊彪";
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
(空、无效的)
方法调用的注意事项:
- 同一个类中(不包含static情况),调用方法只需要直接写
方法名();
即可。同一个类中,你都看到它了,调用一下很简单。 - 不同的类中(不包含static情况),方法间相互调用,需要先创建对象,然后
对象名.方法名();
不同类中,你不创建对象,我怎么知道你是谁的方法。