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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© PeterPang 中级黑马   /  2016-1-14 23:37  /  314 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.面向过程和面向对象
        什么是面向过程?
                比如说,我们想要完成一个大型的项目,那想完成这个项目需要由几个功能共同实现,那在这里面我们就是以函数(具有特定功能的一段独立的小程序)为基础,
        用函数来完成各项操作,那强调就是函数,这就是面向过程

        什么是面向对象?
                比如说,我们想要完成一个大型的项目,那想完成这个项目需要由几个功能共同实现,那我们换了一种方法,把这几个函数都扔到一个对象中,
        那这里面我们就是以对象为基础,用对象来完成各项操作,那强调就是对象,这就是面向对象

        面向对象是以面向过程为基础的,是基于面向过程的

        面向对象的思想特点是什么(我们为什么要学习面向对象)?
                它是一种更符合我们人类思考习惯的思想
                它可以将复杂的事情简单化
                它可以将我们程序员从执行者变成了指挥者

2.类和对象
        什么是类?
                官方:事物的属性和行为的集合,是一个抽象的概念

                我们想要知道Java中的类是什么,就要先知道我们现实生活中的类是什么,因为现实生活中的类和Java中的类似是一样一样的,那现实生活中的类是什么?
                通过查看百度百科,许多相似或者相同事物的综合,具有共同特征的事物所形成的种类,比如说,我们称为人“类”,因为我们有共同的相似的特征,
                比如说,我们都有姓名,年龄,血型,星座等等,这些是我们的属性,我们都有吃喝拉撒睡的能力,这些是我们的行为,Java中的类就是这个类,只不过需要我们用代码体现出来

                什么是属性?
                        事物的外在特征

                什么是行为?
                        事物拥有的功能,能力

                现实生活中叫属性,那Java中叫成员变量
                现实生活中叫行为,那Java中叫成员函数(成员方法)

        什么是对象?
                官方:对象类的具体存在,体现

                比如说你,我,他,我们都是活生生的个体,实体,实体就是对象

        如何编写一个类?
                定义类用关键字class

                class Person {
                        //属性,成员变量
                        String name;
                        int age;
                        String xingzuo;

                        //行为,成员方法
                        public void eat() {}

                        public void drink() {}
                               
                        public void la() {}

                        public void sa() {}

                        public void sleep() {}
                }

        如何使用一个类?
                想使用一个类,要创建该类的对象,然后再使用对象

                创建对象的格式是什么样子的?
                        类名 变量名(对象名) = new 类名();
                        Person  p = new Person();

                使用对象的格式是什么样子的?
                        (对象名)变量名.属性(成员变量)
                        (对象名)变量名.行为(成员方法)

                        p.name = "小花";
                        p.age = 18
                        p.xingzuo = "白羊座";

                        System.out.println(p.name);
                        System.out.println(p.age);
                        System.out.println(p.xingzuo);

                        p.eat();
                        p.drink();
                        p.la();
                        p.sa();
                        p.sleep();

3.成员变量和局部变量
        什么是成员变量?
                定义在类中,方法外的变量就是成员变量

        什么是局部变量?
                定义在方法中,或者方法的声明上

        成员变量和局部变量区别?
                定义位置不同
                        成员变量:定义在类中,方法外
                        局部变量:定义在方法中,或者方法声明上

                初始化值不同
                        成员变量:有默认的初始化值
                        局部变量:没有默认的初始化值,如果我们想要去使用它,一定要先给个初始化值,然后再去使用

                内存位置不同
                        成员变量:存在于堆内存中,生命周期是随着对象的存在而存在,随着对象的消失而消失
                        局部变量:存在于栈内存中,声明周期是随着方法的存在而存在,随着方法的消失而消失

4.匿名对象
        什么是匿名对象?
                没有名字的对象就是匿名对象

        匿名对象的格式?
                new 类名();
                new Person();

        匿名对象的特点?
                一次性,只能使用一次,在创建对象的时候使用一次,之后就没法再使用
                new Person().name;
                new Person().eat();

        我们在什么时候可以使用匿名对象?
                当我们只想使用一次该对象的成员变量或者成员方法的时候,就可以选择使用匿名对象
                匿名对象可以作为实际参数进行传递

5.封装
        什么是封装?
                隐藏对象的属性和实现细节,仅对外提供公共的访问方式

        怎么隐藏对象的属性?
                在属性的前面加上一个关键字,private

        怎么提供公共的访问方式?
                在有private修饰的成员变量的类中,写两个方法,在这两个方法中可以调用本类中的私有的成员变量,
        然后我们在测试类中创建该类对象,用对象调用这两个公共的方法,即可间接的实现调用私有成员变量

6.private关键字
        什么是private关键字?
                它是一个修饰符,代表私有的意思,它可以修饰成员变量和成员方法

        private关键字的特点?
                被pirvate关键字修饰的成员变量和成员方法只能在本类中被访问,不可以再其他类中访问

        注:private仅仅是封装的一种体现,类和方法也是一种封装

        加上private关键字之后的标准代码怎么写?
                class Person {
                        private String name;
                        private int age;

                        public void setName(String n) {
                                name = n;
                        }

                        public String getName() {
                                return name;
                        }

                        public void setAge(int a) {
                                age = a;
                        }

                        public int getAge() {
                                return age;
                        }

                        public void eat() {}
                        public void drink() {}
                }

7.this关键字
        什么是this关键字?
                代表对象的引用,说白了,哪个对象调用this所在的方法,this就代表哪个对象

        this关键字的作用?
                它解决了局部变量隐藏了成员变量的问题

                可以调用本类中的其他的构造方法(以后学)

        加上this关键字之后的标准代码怎么写?
                class Person {
                        private String name;
                        private int age;

                        public void setName(String name) {
                                this.name = name;
                        }
                        public String getName() {
                                return this.name;
                        }

                        public void setAge(int age) {
                                this.age = age;
                        }
                        public int getAge() {
                                return this.age;
                        }

                        public void eat() {}
                        public void drink() {}
                }

0 个回复

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