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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© py1122 中级黑马   /  2019-5-24 11:40  /  715 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.面向对象(理解)
        什么是面向过程?
                C语言
                比如说,我们想要完成某个大型的项目,但是呢,想要完成这个项目,需要3个功能组合在一起才能实现的。我们要做的就是努力把这个三个功能做好,
                在结合,就可以实现这个项目了,在这个过程中,我们重点关注的是每一个功能是否能够做好。面向过程可以理解为面向函数(方法),我们重点关注的就是方法。

        什么是面向对象?
                Java语言
                比如说,我们想要完成某个大型的项目,但是呢,想要完成这个项目,需要3个功能组合在一起才能实现的。我们换了一种思想,我们不去直接做方法了,
                我们直接去找了一个具备该三个功能的对象,我们只需要把对象弄好,大项目也做好了,我们重点关注的是对象了,而不是方法了。

        面向过程和面向对象的关系?
                面向对象是基于面向过程的,就是说以面向过程为基础之上建立的

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

2.类和对象
        什么是类?
                官方:类是某些事物的属性和行为的集合,是一个抽象的概念。
                我们想要知道Java中的类是什么,那我们就要先知道我们现实生活中类是什么呢?通过百度百科查看,我们知道了,类是许多相似或相同事物的综合,
                具有共同特征的事物所形成的种类,即为类,如果我们还不懂,你可以自己问自己一个问题,你为什么是“人类”,因为我们都有相似的外貌(鼻子,眼睛,耳朵,嘴巴等等),
                我们的一些动作都是差不多的,我们都有吃,喝,拉,撒,睡,dbj等功能。Java中的类其实就是对我们现实生活中类的描述

                什么是属性?
                        就是类的外在特征,在java中叫做成员变量。
                        比如说人类,外在特征,鼻子,眼睛,耳朵,嘴巴,都有姓名,年龄,性别,星座,血型。

                什么是行为?
                        行为一个动词,就是类具备的一些功能,比如说人类,功能,吃,喝,拉,撒,睡,跑,跳等等。在java中叫做成员方法

        什么是对象?
                官方:对象是类的具体的存在,体现
                比如说以人类为例,那对象就是具体的某一个人,你,我,他都是对象

        怎么写一个类?
                在写一个类之前,我们先要认真的观察该类有哪些外在特征和功能
                比如我们用人类来举例:
               
                分析:人类
                外在特征:姓名,年龄,性别,星座,血型,身高,籍贯
                功能:吃,喝,拉,撒,睡

                定义类要用到关键字class

                public class Person {
                        //属性,成员变量,事物的外在特征
                        String name;
                        int age;
                        String sex;
                        String xingzuo;

                        //功能,成员方法
                        public void eat() {
                                System.out.println("吃肉");
                        }

                        public void drink() {
                                System.out.println("喝水");
                        }
                }

        怎么创建一个对象?
                类名 对象名 = new 类名();
                Person ppp = new Person();

        怎么使用一个对象?
                给对象的属性赋值,调用对象的功能

                给属性赋值:对象名.属性 = 值
                           System.out.println(对象名.属性);

                           ppp.name = "张三";
                           System.out.println(ppp.name);
                           ppp.age = 18;
                           System.out.println(ppp.age);

                调用对象的功能:对象名.方法名();
                           ppp.eat();
                           ppp.drink();

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

        什么是局部变量?
                定义在方法内,或者方法声明上(形式参数)

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

                内存位置:
                        成员变量存储在堆内存中的对象中
                        局部变量存储在栈内存中的方法中

                生命周期:
                        成员变量是随着对象的存在而存在,随着对象的消失而消失
                        局部变量是随着方法的存在而存在,随着方法的消失而消失

                默认初始化值:
                        成员变量是有默认初始化值
                        局部变量是没有默认初始化的值

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

        private关键字的特点?
                被private关键字修饰的成员变量和成员方法只能在本类中使用,不能在其他类中使用

5.封装
        封装是面向对象三大特征(封装,继承,多态)之一

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

        怎么隐藏对象的属性?
                在属性前面加上private关键字,就可以达到隐藏的效果

        怎么提供公共的访问方式?
                写两个方法,一个是setXXX(),一个是getXXX()

        封装的利弊?
                弊:写起来麻烦(其实也不麻烦,因为我们可以使用快捷键快速生成)

                利:提高了代码的安全性

        开发原则:
                所有的属性都要被private修饰,相应的,你要针对每一个属性,提供setXXX和getXXX方法

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

        this关键字的作用是什么?
                解决了同名的局部变量隐藏了成员变量的问题

7.构造方法
        什么是构造方法?
                方法的名字和类名相同,格式和普通的方法格式不一样的特殊的方法

        构造方法的格式?
                public 类名(形式参数) {
                        xxxooo;
                        return;
                }

        构造方法的作用?
                用来创建对象
                给对象的属性进行默认初始化

        我们在使用构造方法的时候需要哪些问题?
                我们没有自己写构造方法的时候,系统会默认带一个无参数的构造方法
                一旦我们手动写上构造方法之后,系统带的就消失了,建议平时手动写上无参构造和全参构造

                构造方法也是方法,既然是方法就满足方法的重载

0 个回复

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