1. 面向过程的编程思想
解决问题的时候按照一定的过程(流程)
钟点工—> 大象装冰箱 总共分几步
1.开门 2.大象装里面 3.关门
以过程为本–复用–增加了很多冗余
大段的过程 拆分成小段 — 到底是哪一个实体来做的
2.面向对象的编程思想
解决问题的时候按照现实生活中的规律来考虑问题
考虑在这个问题的过程中 有几个实体参与进来
理解为 实体动作动作的支配者 没有实体动作就发生不了
人 冰箱 大象
分析每一类个体都有什么特点 做了哪些事情
大象 特点 大 体重很重
冰箱 特点 有门 容积
人 特点 能做事情 做了哪些事情呢 ? 开冰箱门 装大象 关门
类----人类 抽象笼统的概念 描述一类事物 肯定是具有相同的特征行为
人类有名字 有年龄 有性别-----静态描述特征(特征)-----属性
人类能吃饭 能说话 能学习-----动态动作行为(做事)-----方法
对象–具体的人 人类中的一个具体的人 郑中拓
郑中拓这个具体的人 有名字 有年龄 有性别
能吃饭 能说话 能学习
在现实生活中 对象是先有的 总结出来的概念(类) 后产生的
在计算机中利用面向对象的思想来做事
需要先自己定义(描述)一个类(型)
想要做事情 需要在描述的类中创建一个具体的个体(对象)出来
个体(对象)来做事
1.先创建一个类class
2.类的里面 利用属性或方法去描述这个类
3.创建一个当前类的对象 让对象调用属性/方法做事 对象的创建在哪儿都可以
public class Person {
//这个文件是在计算机内 画的一张图纸
//描述计算机里的人类长成什么样子
//属性--静态描述特点
// 必要的组成部分
// 修饰符 数据类型 属性名字 [= 值];
public String name;//全局变量
public int age;
public String sex;//
//*方法--描述可以做什么事情(动作)
}
类中的四个成员
权限修饰符 [特征修饰符] 属性类型 属性名字 [= 值];
方法---->做一件事情
权限修饰符 [特征修饰符] 返回值类型 方法名字 (参数列表) [抛出异常] [{
方法体
}]
权限修饰符 返回值类型 方法名字 (参数列表) {
}
1.无参数无返回值
2.无参数有返回值
3.有参数无返回值
4.有参数有返回值
人类有名字 有年龄 有性别----属性
人类能吃饭 能说话 能学习----方法
方法中最主要的两个结构 方法的参数列表 方法的返回值类型
方法体 可以理解为方法是做了一件事情
返回值 可以理解为返回值是这件事情做完了 留下的一个结果
返回值又有 基本数据类型 引用数据类型的区别 (详情见练习1)
参数 可以理解为参数是做事情之前 必须提供的条件(可以多个)
构造方法—做事情
public class TestOverload {
public void test(int...x){//本质数组 int[] x = {1,2,3,4,5,6};
System.out.println("执行了test方法携带动态列表");
for(int i=0;i
构造方法中 属性与变量重名 必须需要一个代替词 代替对象
类描述好了以后是不可以直接做事情
需要创建当前类的对象 通过new的方式
Person p = new Person();
通过p.调用啦 调用属性(存值/取值) 调用方法(执行一次)
public class Person {
//这个文件是在计算机内 画的一张图纸
//描述计算机里的人类长成什么样子
//属性--静态描述特点
// 必要的组成部分
// 权限修饰符 [特征修饰符] 数据类型 属性名字 [= 值];
public String name;//全局变量
public int age;
public String sex;//
//*方法--描述可以做什么事情(动作)
//设计一个方法 用来描述人类可以做吃饭这件事情
public void eat(){
System.out.println("吃了一碗大米饭");
}
//设计一个方法 用来告诉别人我的名字 "郑中拓"
//若方法的设计规定了返回值类型 方法内必须通过return关键字返回一个值
public String tellName(){
System.out.println("你们问我叫什么呀?勉强告诉你们一下");
return "郑中拓";//只有一个
}
//设计一个新的吃饭方法
//描述人类可以做吃饭饭这件事情
public void chiFanFan(int count,String something){
System.out.println("吃了"+count+"碗"+something);
}
//设计一个方法 买饮料 1.需不需要提供条件 2.需不需要给别人留下什么结果
// 需要提供条件 钱
// 需要返回值 买到的饮料 名字
public String buyDrink(int money){
if(money>5){
return "红牛";
}else{
return "矿泉水";
}
}
}
调用
public class Test {
//这个类没有什么现实意义
//只是为了将主方法写在这里
public static void main(String[] args){
// 1.创建一个对象 人类的对象
Person p = new Person();
p.drawStar(5,true);
String drinkName = p.buyDrink(10);
System.out.println("买到了一瓶:"+drinkName);
p.chiFanFan(2,"面条");
String myName = p.tellName();
System.out.println("接收到了tellName方法的返回值:"+myName);
}
}
形参可以理解为是方法执行时的临时变量空间 x
实参可以理解为是方法调用时传递进去的参数 a
方法调用时会将实参的内容传递给形参
如果内容是基本类型 传递的 是值 形参改变 实参不变
如果内容是引用类型 传递的 是引用 形参改变 实参跟着改变
详情案例见练习1