面向对象的定义:面向对象基于面向过程类属性方法对象 就是 类 的具体体现类 是一类事物的抽象体现 对象 是 类的一个具体提体现 ============================属性 对应特征方法 对应行为/功能小明去吃饭了 对象调用方法对象是 new 出来的(堆内存中)=============================例:小汽车 牌子 颜色事物都是由(特征)属性和(行为)功能组成的对应到程序中 类 变量 方法如果一个源代码中写多个类,只能有一个Public修饰而这个类是程序的入口main。类名要跟与文件名相同。除了main方法以外,其他方法里面不加 static!!!!public class Demo{}-----------------class Car{//属性 变量String color;//颜色String brand;//品牌//方法 行为void run(){System.out.println("呜呜呜~~跑起来");}=================汽车类的食物 汽车食物 特征:品牌 颜色 行为:跑。。。car类 成员变量:brand color 成员方法:run()//成员方法可以访问成员变量。================================测试类中写main方法public static void main(String[]args){、、/需要类的具体体现 就是创建对象 就是new 出来/Car car=new Car();//给这个车成员变量 赋值//对象。变量名car.brand=“特斯拉”;car.color=“富黑”;}//调用功能//对象。方法名();car.run();================================类是一种引用数据类型方法不调用 不执行 引用数据类型的变量值 是地址值 基本数据类型的变量值 是数值=================================new 出来的都是新的=================================局部变量和成员变量的区别局部变量在 栈中 栈内存中 方法(位置不同 方法声明上或方法定义中)随着方法的调用而产生,随着方法的弹栈而消失==================================public class Abc{String name;(成员变量)void show(inta intb){(方法声明上)int c=100;(方法定义中)}}成员变量在 堆中 (在堆中)成员位置 类中 方法外)堆内存中 对象随着对象的创建而产生,随着对象的消失而消失初始化:栈内存中的变量 如果定义了 不赋值 不能使用 堆内存中的变量 有初始化默认值===================================================面向对象共有三个特征封装 继承 多态=========================封装方法就是一个封装体类也是一个封装体=========================关键字 private(私有的)(权限修饰符)被它修饰的只能在本类中访问,外界不能访问可以修饰变量 也可以修饰方法用的时候:private int age;private void show();===============================public 修饰符(公共的 都可以用)private 修饰符(私有的 只能本类中访问)如果想要外界访问 私有的成员 需要提供公共的访问方式public结论:类中不需要对外的内容都要私有化,包括属性和方法以后再描述事物 属性都私有化 并提供setxxx getxxx对其进行访问===========================================================this 关键字变量访问有个就近原则在方法中访问的时候如果方法中有这个名字的变量 访问方法的如果访问变量名 局部位置没有 去成员位置找成员位置也没有 对于现阶段来说 就报错成员变量和局部变量重名 咋办?如果我能把成员变量和局部变量区分开就好 。可以使用一个叫this的关键字区分开this 代表当前的对象this.变量 指的是成员变量this解决了局部变量和成员变量重名问题=========================================设置值 public void setName(String name){this.name=name;//this.name 成员位置的name}
public void setAge(int age){this.age=age;
}获取值public String getName(){return name;}public int getAge(){return age;}=============================int age=sc.nextInt();s.setName(name);=============================s.getName();s.getAge();=============================以后属性都私有都要提供公共访问方式setXxx 赋值xxx的类型 getxxx() 获取值=============================怎么用 外界要给的属性 设置值 找set方法外界要获取属性 找get方法=========================在获取对象属性的地方 全变成 get在设置对象属性的地方 全变成set方法=====================================以上是一种封装的体现=====================================类 对象=====================================局部变量和成员变量的区别:
1: 定义位置不同 成员变量 类中方法外 局部变量 方法中
2:(程序运行要进入内存)存储位置
成员变量 堆中 属于对象的 局部变量 栈中 属于方法的
3:生命周期 成员变量 随着对象的创建而加载 随着对象的消失 而消失 局部变量 随着方法的调用而存在,随着方法的弹栈而消失。 4:初始值不一样 成员变量 有默认值 局部标本量 不赋值不能调用
|
|