面向对象1
来源:互联网 发布:如何选择净水器 知乎 编辑:程序博客网 时间:2024/06/04 20:13
一.面向对象思想
- 基于过程思想:给一个需求,通过分析需求,然后一步一步的去实现,完成一个功能的具体步骤.
面向对象思想:创建对象,使用对象调用功能!(主要:对象)举例:
面向过程:
打水:自己打水—>拿起杯子—>走到打水的地方—>打水
面向对象:
打水:让别人给我打水(只管水给我就可以了)—->喝水 在用面向对象思想体现的时候,我们应记着三个规则,更符合面向对象思想:
- 首先分析有那些类
- 接着分析每个类应该有什么
- 最后分析类与类的关系
面向对象开发:就是不断的创建对象,使用对象,指挥对象做事情.
面向对象设计:就是在管理和维护对象之间的关系.
面向对象特征:
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
二.类与对象及其使用
类:是一组相关的属性和行为的集合
- 借助事物理解类:
事物是现实世界里面的一些具体的东西.
描述一个事物:学生:姓名,年龄,性别 学习,打游戏
描述事物的属性:姓名,年龄,性别
描述事物的行为:学习,打游戏
一个事物转换成类:`学生事物:属性:姓名,年龄,性别 行为:学习,打游戏`
学生类:
属性在类中叫成员变量:name,age,gender
行为在类中叫成员方法:study(),playGame() - java中最基本的单元是类
- 借助事物理解类:
对象是该类事物的具体体现
例如:上述学生类的对象:班长,张三,李四….
创建对象:类名 对象名 = new 类名() ;
使用对象名去访问成员变量,成员方法:对象名.成员变量/对象名.成员方法
//创建一个学生类class Student{ //成员变量 String name; int age; char sex; //成员方法 public void playGames(){ System.out.println("打游戏"); } public void study(){ System.out.println("学习"); } }//学生类的测试类public class Demo1 { public static void main(String[] args){ //创建对象 Student a = new Student(); //访问成员方法 a.playGames(); a.study(); //访问成员变量 a.name = "张三"; a.age = 20; a.sex = '男'; System.out.println(a.name+" "+a.age+" "+a.sex); }}
三.成员变量和局部变量的区别
在类中的位置不同
成员变量:类中方法外
局部变量:方法内或者方法声明上在内存中的位置不同
成员变量:堆内存
局部变量:栈内存生命周期不同
成员变量:随着对象的存在而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失初始化值不同
成员变量:有默认的初始化值(int->0,引用类型->null)
局部变量:没有默认的初始化值,必须先定义,赋值,才能使用。注意:当局部变量和成员变量名称一致时就近原则
//定义一个基本类class Num{ //定义成员变量:类中方法外 int num = 100; //定义一个成员方法 public void show(){ //定义局部变量:方法声明上/方法定义中 int num1 = 200; System.out.println(num1); //局部变量和成员变量同名,就近原则 int num = 300; System.out.println(num); }}public class Demo1 { public static void main(String[] args){ //创建Num类的对象 Num a = new Num(); System.out.println(a.num); a.show(); }}
四.匿名对象
- 匿名对象:没有名字的对象
- 调用:执行一次,不适合多次调用
- 匿名对象可以作为参数传递
//创建一个学生类class Student1{ public void show(){ System.out.println("学习"); }}class StudentDemo{ //将匿名对象作为形参 public void method(Student1 s){ s.show(); }}public class Demo2 { public static void main(String[] args){ //创建一个有对象名的对象 Student1 a = new Student1(); a.show(); a.show();//这个对象将show调用两次 //匿名对象调用show new Student1().show() ; new Student1().show() ;//重新创建了一个对象,堆内存中产生内存空间 StudentDemo b= new StudentDemo(); //匿名对象作为参数 b.method(new Student1()); //链式编程 new StudentDemo().method(new Student1()); }}
阅读全文
0 0
- 面向对象(1)---多态
- java 面向对象1
- 面向对象基础1
- javascript面向对象1
- java面向对象1
- 面向对象总结1
- 面向对象笔记1
- 面向对象(1)
- 面向对象1
- 面向对象(1)
- 总结1:面向对象
- 面向对象(1)
- 面向对象1-2
- python面向对象1
- 面向对象(1)
- 面向对象设计1
- PHP面向对象(1)
- C#1面向对象
- 五、C_base——数组
- 常用网址
- xcode一个工程引入另一个工程
- php动态导出数据成Excel表格
- 机器学习之利用PCA来简化数据
- 面向对象1
- 一个开源的社会化编程项目
- Javascript基础(四)作用域和闭包
- (25)继承中成员变量、函数中覆盖、构造函数的理解
- 终于下手,Ubuntu 17.10 用 GDM 取代 LightDM
- safai上jquery动态设置select默认值不成功的问题
- java语言编写的人工智能小测试
- java中操作Oracle clob数据出现的连接关闭问题
- Java设计模式透析之 —— 模板方法(Template Method)