Java基础——面向对象
1.什么是面向对象
面向对象是基于面向过程的编程思想。
(1).面向过程:
面向过程强调的是每一个功能的步骤,强调的是如何实现的步骤。
(2).面向对象:
面向对象强调的是对象,然后由对象去掉用功能,强调的是做这一个事情的结果。
2.面向对象的思想特点
(1).是一种更加符合我们思想习惯的逻辑。
(2).可以将复杂的事情简单化
(3).将我们从执行者变成了指挥者。
3.面向对象举例
我们一洗衣服为例:
面向过程的实施步骤:
找出脏衣服--->放入盆中---->放入洗衣粉--->泡一会--->搓衣服,把脏的地方搓干净--->拧干---->晾起来
面向对象的实施过程:
找出脏衣服--->放入洗衣机中---->加水--->拧干---->晾起来
我们可以看出洗衣机就是我们洗衣服这一个过程中的一个对象,这个对象具有面向过程中一些具体步骤的功能。
4.面向对象的开发、设计、特征
(1).面向对象开发
就是不断的创建对象,使用对象,指挥对象做事情。
(2).面向对象设计
其实就是在管理和维护对象之间的关系。
(3).面向对象特征
封装
继承
多态
5.类和对象的概述
(1).现实世界中是如何描述一个事务呢?
如描述学生:
基本属性:姓名,年龄,性别,身高,体重
基本行为:吃饭,睡觉,学习,玩耍,谈恋爱
(2).程序中描述一个事务
在java语言中,最基本的描述单位是类,我们用类和现实世界中的事物对应起关系来;
就是学生类,基本属性使用的是该类的成员变量,基本行为就是用该类的成员方法。
(3).代码实现
学生类定义:
现实中学生事务:
基本属性:姓名,年龄,性别,身高,体重
基本行为:吃饭,睡觉,学习,玩耍,谈恋爱
程序中表述:
成员变量:姓名,年龄,性别,身高,体重
成员方法:吃饭,睡觉,学习,玩耍,谈恋爱
代码:
public class Student {
//姓名
private String name;
//性别
private String sex;
//年龄
private int age;
//身高
private double hight;
//体重
private double weight;
//定义吃饭方法
public void eat(String name) {
System.out.println(name+":这是吃饭的方法");
}
//定义睡觉方法
public void sleep(String name){
System.out.println(name+":这是睡觉的方法");
}
//定义玩耍的方法
public void play(String name){
System.out.println(name+":这是玩耍的方法");
}
//定义学习 的方法
public void study(String name){
System.out.println(name+":这是学习的方法");
}
}
(4).对象
A:什么是对象
对象就是一个实际具体的可以用的类,也就是说我们定义了一个学生对象,但是仅仅只是定义了一个虚构的,我们要把他变为现实的可用的,如定义一个小明学生对象,小明就是一个具体的,可以使用的
而小明具备这一个学生的所有特征,有姓名,年龄,性别,身高,体重,同时也能够:吃饭,睡觉,学习,玩耍,谈恋爱。
B:如何创建一个对象
类名 对象名=new 类名();
C:对象是如何使用类的:
public static void main(String[] args) {
Student st =new Student();
st.age=20;
st.hight=1.75;
st.sex="男";
st.weight=50;
st.name="小明";
st.eat("小明");
st.sleep("小明");
st.play("小明");
st.study("小明");
System.out.println(st.name+"--"+st.age+"--"+st.hight+"--"+st.sex+"--"+st.weight);
}
//输出结果
小明:这是吃饭的方法
小明:这是睡觉的方法
小明:这是玩耍的方法
小明:这是学习的方法
小明--20--1.75--男--50.0
6.成员变量和局部变量
(1).为什么会出现俩种不同的变量
我们在实际的使用中,我们需要一个变量的作用范围和使用的时候的具体操作不一样,所以才出现俩种不同的变量。
(2).区别
A:在类中的位置不同
成员变量:在方法外
局部变量:在方法定义中或者是方法申明上。
B:在内存中的位置不同
成员变量:在堆内存中
局部变量:在栈内存中
C:生命周期不一样
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而调用,随着方法调用完毕而消失
D:初始化值不一样
成员变量:有默认的初始化值
局部变量:没有默认的初始化值,必须要定义,赋值,然后才可以使用。
注意事项:
局部变量名称可和成员变量名称一样,在方法中使用的时候,采用的是就近原则(使用的时候哪一种变量最近就是使用那一种变量)。
(3).代码实现
public class Test {
//定义成员变量
int a=10;
public static void show(int a){
System.out.println("就近原则测试:"+a);
}
public void showValues(){
//定义局部变量
int num=120;
//局部变量没有初始化不能使用,报错提示
//int num1;
//System.out.println("局部变量使用测试:"+num1);
System.out.println("局部变量使用测试:"+num);
}
//测试
public static void main(String[] args) {
Test ts =new Test();
ts.showValues();
show(20);
}
}
//输出结果
局部变量使用测试:120
就近原则测试:20
原文地址:https://www.cnblogs.com/nwxayyf/p/9451504.html