黑马程序员_面向对象
来源:互联网 发布:手机淘宝聊天记录消失 编辑:程序博客网 时间:2024/06/05 20:14
首先根据客户需求抽象出业务对象;然后对需求迕行合理分层,构建相对独立的业务模块;之后设计业务逻辑,利用多态、继承、封装、抽象的编程思想,实现业务需求;最后通过整合各模块,达到高类聚、低耦合的效果,从而满足客户要求。
3. 面向对象概念
- 类型(类):指一个名词概念,如:客人、菜品、厨师。
- 引用(变量):指引用具体概念实例的代词,如:某人、特价菜
- 对象(东西):指具体概念的个体实例,如:张三丰是个人、一盘大盘鸡
- 行为:方法
- 多态:在具体情形下会发生变化的现象。例如:一只动物,可以是“一只猫”、“一只狗”,多态的。
- 封装:仸何对象实例都是尽可能封装, 减少暴露,它的实现细节对你是透明的。
- 继承:通过继承实现代码复用。Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。继承而得到的类称为子类,被继承的类称为父类。子类不能继承父类中访问权限为private的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量。但Java不支持多重继承,即一个类从多个超类派生的能力。
- 引用变量与对象的创建过程(该部分为参考其他资料感觉讲的比较透彻)
public class BookDemo {public static void main(String[] args) { //声明引用book //第5行 Book book; //创建对象 //第6行 book = new Book(); //第7行 book.name="计算机编程"; //第8行 System.out.println(book.name);//输出结果是计算表编程 //第9行 book = new Book(); //第10行 book.name="Think in java"; //第11行 System.out.println(book.name);//输出Think in java}}class Book{ String name; String auther; double Price;}
计算机执行 Java 程序时会在内存中开辟一块栈内存(stack)空间。其实在程序运行期间,JVM 迓开辟了一个堆内存(heap)空间。
栈内存空间的存储特点是“后进先出”,堆内存空间的存储特点和栈不同,类似于一盘散沙,随处可以“堆放”。
编程好习惯:
一个 class(类)写在一个.java 文件,尽量不要把多个类写到一个.java 文件中
注:
- 此时堆内存中有两个对象,引用变量 book 指向新创建的对象
- 原来引用的对象等待垃圾回收
Java 的内存管理与分配
ü 栈是一块 Java 使用内存区域,使用的方式:LIFO(后来者居上)
ü 堆也是一块 Java 使用内存区域,使用方式:随机分配
局部变量与堆对象空间分配
ü Java 局部变量和方法参数在栈中分配,大小是按照变量的类型分配
ü 对象在堆中分配,按照类中声明属性(实例变量)分配空间
变量类型与分配
ü 变量分为:基本类型和引用类型
ü 基本类型变量的空间大小:就是基本类型的空间大小,值是基本类型的值
ü 引用变量的值是一个对象的地址值,引用变量通过地址引用了一个堆对象
ü 引用类型变量的占用空间大小和值管理是“透明的(不可看见)”由 Java 系统管理:变量占用空
间以及值的管理,都是透明的
构造方法(构造器)要点:
ü Java 中的构造器(构造方法)声明在类内部。
ü 方法名与类名一致的方法叫构造方法
ü 构造方法不能声明返回值类型。
ü 构造方法可以包含参数,参数一般是创建对象实例必须依赖的条件(前提条件)。
public class Person{ String name; String sex; //构造器 public Person(String name,String sex){ this.name = name; this.sex = sex; }}
new 运算:创建对象实例(共 3 步)
第 1 步 根据类的属性在堆中分配对象空间,并且自动初始化实例变量
public class CreateDemo {public static void main(String[] args) { Person p = new Person("luqh","女"); System.out.println(p.name+" "+p.sex);}}
第 2 步 根据参数类型调用构造器
public class Person{ String name; String sex; //构造器 public Person(String name,String sex){ this.name = name; this.sex = sex; }}
public Person(String name,String sex){ this.name = name; this.sex = sex;
第 3 步 new 运算迒回对象的引用地址
public class CreateDemo {public static void main(String[] args) { Person p = new Person("luqh","女"); System.out.println(p.name+" "+p.sex);}}
this 是对当前对象的引用,是运行期间当前对象本身。
ü 可以使用 this 明确的访问当前对象的属性戒者方法,类似于"我"
ü this() 可调用本类的其他构造器, 可以使用构造器的重用简化代码的实现。
ü this() 必须写在构造器的第一行!因为在构造器之前是没有对象的。
例子:this调用本例构造器
在Person(String name)构造哦方法中调用了Person(String name,String sex)构造方法
class Person{ String name; String sex; public Person(String name){ this(name,name); } //构造器 public Person(String name,String sex){ this.name = name; this.sex = sex; }}
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- [tyvj1730二逼平衡树]解题报告
- BZOJ 2806 Cheat (后缀自动机+dp)
- Hibernate 乐观锁和悲观锁
- DOS操作系统学习笔记(1)
- Eclipse设置Courier New字体
- 黑马程序员_面向对象
- 自动识别OpenCV版本并添加依赖库
- strcpy和memcpy的区别
- 小媛在努力
- 整数的因子和 ---TOJ 1089 Happy 2004
- 使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)
- 设计模式六大原则(1):单一职责原则
- 新人学习、svn提交规范。
- 最快速的Android开发环境搭建ADT-Bundle及Hello World