java面向对象
面向过程的编程思想
解决问题的时候按照一定的过程(流程)
钟点工—> 大象装冰箱 总共分几步
1.开门 2.大象装里面 3.关门
以过程为本–复用–增加了很多冗余
大段的过程 拆分成小段 — 到底是哪一个实体来做的
面向对象的编程思想
解决问题的时候按照现实生活中的规律来考虑问题
考虑在这个问题的过程中 有几个实体参与进来
理解为 实体动作动作的支配者 没有实体动作就发生不了
人 冰箱 大象
分析每一类个体都有什么特点 做了哪些事情
大象 特点 大 体重很重
冰箱 特点 有门 容积
人 特点 能做事情 做了哪些事情呢 ? 开冰箱门 装大象 关门
类和对象
类----人类 抽象笼统的概念 描述一类事物 肯定是具有相同的特征行为
人类有名字 有年龄 有性别-----静态描述特征(特征)-----属性
人类能吃饭 能说话 能学习-----动态动作行为(做事)-----方法
对象–具体的人 人类中的一个具体的人 刘德华
刘德华这个具体的人 有名字 有年龄 有性别
能吃饭 能说话 能学习 能唱歌 能演戏
在现实生活中 对象是先有的 总结出来的概念(类) 后产生的
在计算机中利用面向对象的思想来做事
需要先自己定义(描述)一个类(型)
想要做事情 需要在描述的类中创建一个具体的个体(对象)出来
个体(对象)来做事
如何在计算机中创建(描述)一个类
1.先创建一个类class
2.类的里面 利用属性或方法去描述这个类
3.创建一个当前类的对象 让对象调用属性/方法做事对象的创建在哪儿都可以
//创建一个Person类文件
public class Person {
//这个文件是在计算机内 画的一张图纸
//描述计算机里的人类长成什么样子
//属性--静态描述特点
// 必要的组成部分
// 修饰符 数据类型 属性名字 [= 值];
public String name;//全局变量
public int age;
public String sex;//
//方法--描述可以做什么事情(动作)
public void sex(){
System.out.println("我是性别")
}
}
//创建一个Test类文件
public class Test {
//这个类没有什么现实意义
//只是为了将主方法写在这里
public static void main(String[] args){
//想要在这里使用一个人 来执行操作
//创建一个人类的对象 找一个空间来存储
Person p = new Person();//这里是把Person类调用过来
//通过对象. 去调用属性 存值/取值
//属性是有默认值 name==null age==0 sex==null
// p.name = "周杰伦";
// p.age = 18;
// p.sex = "男";
System.out.println(p.name+"今年"+p.age+"岁,性别是"+p.sex);
//调用方法
p.sex();//同样是通过对象.的方式调用
}
}
最后输出结果是:
周杰伦今年18岁性别是男
我是性别
类中的方法---->做一件事情
正常写法:
权限修饰符 [特征修饰符] 返回值类型 方法名字 (参数列表) [抛出异常] [{
方法体
}]
去掉可以不写的:
权限修饰符 返回值类型 方法名字 (参数列表) {
}
方法有四种形式:
1.无参数无返回值
2.无参数有返回值
3.有参数无返回值
4.有参数有返回值
下面逐一介绍每一种的用法
//创建一个TestOne类
public TestOne class{
//第一种无参数无返回值
//void 规定没有返回值
public void one(){
System.out.println("我是无参数无返回值")
}
//第二种无参数有返回值
//String是返回值的类型,你返回值是什么类型的就写什么类型
public String singer(){
String a = "我喜欢唱歌"
return a; //必须用return来返回值
}
//第三种有参数无返回值
public void age(int a){
//参数在参数列表中添加,可以多参
System.out.println("我身高是"+a)
}
//第四种有参数有返回值
public int books(int a,int b){
System.out.print("语文书有"+a);
System.out.println("数学书有”+b);
return a+b;
}
}
//调用方法
//创建一个Test类文件
public Test class{
public static void main(String[] args){
TestOne two = new TestOne();
//第一种无参数无返回值
two.one();
//第二种无参数有返回值
String txt = two.singer();//有返回值我们需要接收
//第三种有参数无返回值
two.age(180);//在括号中加入参数
//第四种有参数有返回值
int bks = two.books(5,8);
}
}
最后输出结果:
我是无参数无返回值
我喜欢唱歌
我身高是180
语文书有5数学书有8
13