A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 张研老师 于 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. 可不加系统会默认给你加






亲们 这是第六天的内容喔.  限制字了.我发在另外帖子里

评分

参与人数 1黑马币 +5 收起 理由
张研老师 + 5 很给力!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马