本帖最后由 张研老师 于 2015-12-5 10:36 编辑
面向对象: 什么是面向对象 . 找人帮我洗衣服. 做饭.
1. 面向对象是基于面向过程的,面向对象强调的对象. 面向 过程 强调的是过程.
2. 聊到面向对象, 不得不题的就是它3个思想特点.
A: 更复合咱们人们的思考习惯
B,把服战的时间变的简单化
C.把程序员从执行者变成了指挥者.
3.举例.
摊煎饼. 买电脑. 最好能结合当时场景来说.
4.万物皆对象.
面向对象开发(程序)
就是不断的创建对象 使用对象,指挥对象做事情,
面向对象(程序)设计
指的就是维护 各个对象之间的关系.
推荐. UML 统一建模语言.人(闫闳),
面向对象的基本概述:
面向过程思想概述:
第一步 第二步.
面向对象思想概述: 区别: 强调过程, 我找人来做.
找对象.(第一步.第二部)
面向对象思想特点.:
是一种更复合我们思想习惯的思想
可以将复杂的事情简单化
讲我们从执行者变成了指挥
角色发生了转换
面向对象开发:
就是不断创建对象. 使用对象.指挥对象做事情.
面向对象设计:
其实就是在管理和维护对象之间的关系.
面向对象特征.
封装:
继承:
多态:
核心概念:
类:是一组相关的属性和行为集合 一个抽象的概念.
对象:是该类事物的具体体现. 实现.
举例: 类=学生. 对象:具体某个学生的对象.
属性(成员变量):就是该实物描述信息.事物身上的名次
和以前写的局部变量一样.只不过位置不一样 写在类中.方法外
行为(成员方法):就是该事物能够做什么 事物身上的动词.
和以前定义方法是一样的. 先把statuc去掉.其他不变.
java语言最基本的单位是:类.
计算机最基本的存储单位是: 字节.
学生类:
属性:姓名 , 年龄 , 手机号 身份证号, 性别.
行为:学习. 吃饭. 睡觉.打dota
class PhoneTest {
public static void main(String[] args) {
Phone p = new Phone();
p.brand = "苹果18黄金版";
p.price = 16;
System.out.println(p.brand + "..." +p.price);
p.call();
p.playGame();
}
}
class Phone {
String brand; //品牌
int price; //价格
public void call() { //打电话
System.out.println("骚扰电话");
}
public void sendMessage(){ //发信息
System.out.println("骚扰信息");
}
public void playGame(){
System.out.println("玩游戏");
}
}
class Demo1{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
class Student {
String name; //姓名
int age; //年龄
String gender; //性别.
public void study() {
System.out.println("学习的方法");
}
public void sleep() { // 定义睡觉的方法
System.out.println("学生睡觉");
}
}
内存:栈 局部变量 代码的执行.
特点. 先进后出. 用完就释放
堆: 所有nuew出来的东西. (对象)
特点. 没有任何引用指向 该对象. 该对象就是垃圾. 会在不确定的时间jc回收
jc 就是垃圾回收机智.
局部变量和成员变量的区别:
1,在类中的定义位置不同
局部变量:方法中或者方法形参上
成员变量:类中 方法外
2,在内存中的存储位置不同
局部:栈
成员:堆
3,生命周期不同.
局部: 和方法相关
成员:和对象相关
4,初始化值不同.
局部变量:没有默认值 必须先定义 在赋值. 才能使用
成员变量:有默认值
整型: 0
浮点型:0.0
字符:'\u0000'
布尔:false
引用类型:null
当我们看到一个方法的形参的数据类型是一个自定义的时候.其实要的就是这个类的对象.
匿名对象 就是没有名字的对象.
匿名对象英勇场景.
1: 调用方法 仅仅你值调用一次的时候. 注意. 调用多次的时候不适合匿名对象用完毕就是垃圾 可以被垃圾回收器回收
2:匿名对象可以做为实际参数传递
3.案例:
class StudentTest {
public static void main(String[] args) {
int[] arr = new int[5];
print(arr);
print(new int[5]);
Student s = new Student();
print(s);
}
public static void print(int[] arr) {
System.out.println(arr.length);
}
public static void print(Student s) {
s.study();
}
}
class Student {
public void study() {
System.out.println("马勒个臭逼");
}
}
封装:
是指隐藏对象的属性和实现细节, 近对外提供公共访问方式
private 关键字来实现封装. 只是封装的一种提现 权限修饰符. 可以用来修饰成员变量和成员方法 被它修饰的内容 值能在本类中被访问,
注意: 暂时理解即可 帝释天还会重点讲.
权限修饰符.
private 默认. protected. public
我们学过的类 都是封装的提现.
公共的访问方式.
getXxx()和setXxx()方法 不一定要同时出现. 看需求.如果只赋值 就些set 如果值获取值就写get
因为我们还不是特别熟练. 所以不管用不用.都get 和set 都写上.
getName() setName()
封装好处. 隐藏实现细节. 提供公共的访问方式.
提高了代码的复用性
提高了安全性
将不需要的对外提供内容都隐藏起来
把隐藏属性提供给公共方使用.
this : 代表当前对象的引用. 谁调用this 就代表谁.
this的英勇场景.
用来区别成员变量和局部变量重名. 用来解决同名的情况.
this. 可不加系统会默认给你加
亲们 这是第六天的内容喔. 限制字了.我发在另外帖子里 |