对象"/>
雷和对象
类和对象
1. 了解面向过程和面向对象的思想
吃货联盟订餐系统:简化的面向过程思想。
**面向过程:**面向方法、面向函数、结构化方法。
代码是有顺序的,需要什么功能就编写什么功能。
我们前期的语法阶段将吃货联盟代码全部放在main方法中,之后等我们学了方法,就会把吃货联盟稍微用正式的面向过程改造一下。(按照功能聚合到对应方法中)
**[有难度,不是简单就能体会的]面向对象(OOP):**它是基于面向过程产生的一种更复杂的编程思想/编程方式。从现实世界抽象而来的!它的代码执行顺序不固定。
Java是不完全的面向对象、Python面向对象 、C#面向对象 、C++面向对象 、PHP也是面向对象的编程语言。
刚开始(面向过程):自己去采购 -> 自己准备好材料 -> 自己出摊 -> 自己迎接客人 -> 自己做煎饼 -> 自己收银 -> 自己收摊。
后面发达了(面向对象):采购部采购 -> 餐饮部准备材料 -> 服务员准备迎接客人 -> 厨师做菜 -> 收银员收银 -> 服务员收摊。
2. 理解类和对象的关系
生活中的对象
万物皆对象:你身边的任何一个物体/实体都可以称之为对象。
我们在描述生活中的一个个对象时通常都会采用特征+行为的方式。
**特征:**属性
**行为:**操作、方法
**对象的概念:**用来描述客观事物的一个实体,由一组属性和方法构成。
生活中的类
我们在看到一群对象/实体时,会下意识进行分类(人类认识事物的必然过程)。“物以类聚、人以群分”
学生(类别)、人类、哺乳类、爬行类、猫类、灵长类、啮齿类…
类(类别):它是一个抽象的概念,它是从一群对象中抽取共性的特征和行为产生的一个概念。没有办法具体拿某个对象来表示某个类别,因为对象只是类的一个个体。
**生活中类和对象的关系:**类是一个模板,对象是类的一个个体,是根据类这个模板而产生的个体。
程序中的类和对象
Java 是一个"不完全"的面向对象的编程语言。(因为有基本数据类型存在)
它以类(引用数据类型)为基本单位
,被class修饰的。
**基本数据类型:**byte short int long float double char boolean
**引用数据类型:**数组、类(String就是一个类)、接口、枚举…
程序中的类和对象都是从生活中抽象而成的,你在现实中如何描述它们,程序中也是。
3. 掌握类创建的方式
public class 类名{// 1.此类的相关属性(成员变量/字段)// 2.此类的相关方法(成员方法/函数)
}
定义学生类:
public class Student{// 相关属性姓名学号班级专业性别....// 相关方法学习考试作业...
}
定义狗类:
public class Dog{// 相关属性姓名;品种;颜色;性别;年龄.....// 相关方法吃喝睡看家
}
定义计算机类:
public class Computer{// 相关属性品牌;型号;颜色;价格;处理器;屏幕尺寸;是否触屏;显卡;内存;.....// 相关方法放歌;敲代码;打游戏;看电影;......
}
定义手机类:
public class Phone{品牌;型号;价格;颜色;内存;系统;.....打电话;发短信;拍照;.....
}
/*** 定义学生类* @author Charles* 2019年3月31日 上午10:53:52*/
public class Student {// 一组属性(成员变量)/** 学生姓名 */public String stuName;/** 学生编号 */public int stuNo;/** 学生班级 */public int classId;/** 学生专业 */public String major;/** 学生性别 */public char gender;/** 学生年龄 */public int age;/** 学生成绩 */public double score;// 一组方法(成员方法)// public static void main(String[] args){}/*** 学习方法*/public void study() {System.out.println(major+"专业的"+classId+"班级的"+stuName+"正在好好学习!");}/*** 自我介绍*/public void showMyself() {System.out.println("姓名:"+stuName);System.out.println("班级:"+classId);System.out.println("专业:"+major);System.out.println("性别:"+gender);System.out.println("年龄:"+age);System.out.println("成绩:"+score);System.out.println("学号:"+stuNo);}
}
4. 掌握对象创建的方式
语法:类名 对象名 = new 类名();
Student chenXu = new Student(); // 基于Student模板创建了一个个体/对象
调用属性:
对象名.属性名 = xxx; // 赋值
对象名.属性名
调用方法:
对象名.方法名();
public class Test {public static void main(String[] args) {// 根据类模板产生对象// 创建对象(对象名的命名规范和变量名一致)Student chenXu = new Student();Student shr = new Student();// 操作/调用属性shr.stuName = "李明";shr.classId = 5;shr.major = "计算机学生";chenXu.stuName = "宝宝";chenXu.classId = 5;chenXu.major = "生化学";chenXu.gender = '男';chenXu.stuNo = 333;chenXu.age = 13;// 操作/调用方法 input.nextInt();chenXu.showMyself();chenXu.study();// shr.study();// shr.showMyself();System.out.println(shr.stuName+"的专业是:"+shr.major);}}
题外话:
数据存储的技术
变量
数组:长度无法改变 存储的数据类型单一。
对象:
对象数组:Student[]…
5. 掌握基本方法创建
面向过程/方法/函数,结构化方法
**方法:**是功能,是一系列代码的聚合,也可以理解为一个魔术箱。
基本语法:
访问修饰符 返回值类型 方法名(参数列表){ // 方法声明// 方法体
}
// Arrays.toString(参数); 将数组转换为字符串
public void(表示没有返回值) showMyself(){syso();
}
更多推荐
雷和对象
发布评论