黑马程序员——面向对象

来源:互联网 发布:淘宝促销源码 编辑:程序博客网 时间:2024/05/21 07:06

———–android培训、java培训、java学习型技术博客、期待与您交流!————

1:面向对象

(1)面向对象是相对应面向过程而言的一种编程思想,是基于面向过程的。(2)思想特点:    A:是一种更符合我们思考习惯的思想。    B:把复杂的事情简单化。    C:让我们从执行着变成了指挥者。(3)案例:    A:买电脑    B:吃饭,洗衣服    C:我要喝水(4)把大象装进冰箱,让大家对面向对象有一点点的了解。    面向过程:
class Demo {                public static void main(String[] args) {                    open();                    in();                    close();                }                public static void open() {                    System.out.println("开门");                }                public static void in() {                    System.out.println("我要进去");                }                public static void close() {                    System.out.println("关门");                }            }
    面向对象:        如何让我们的代码更符合面向对象思想            A:有哪些类            B:类有哪些功能            C:类与类的关系
class 大象 {                public void in() {                    System.out.println("我要进去");                }            }            class 冰箱 {                public void open() {                    System.out.println("开门");                }                public void close() {                    System.out.println("关门");                }            }            class Test {                public static void main(String[] args) {                    冰箱 b = new 冰箱();                    大象 d = new 大象();                    b.open();                    d.in();                    b.close();                }            }

2:类与对象的关系(掌握)

(1)现实世界的事物:    属性:事物的特征    行为:事物的功能

(2)java中最基本的单位是类。所以,我们要把事物转换为对应的类。

(3)如何转换呢:    类       事物    成员变量    属性    成员方法    行为    成员变量:属性,字段    成员方法:函数,方法(4)类与对象的概念    类:是一组相关的属性和行为的抽象的集合体。    对象:是该类事物的具体存在的个体。    类:学生    对象:林青霞

3:类与对象的使

(1)学生类的制作和使用(2)手机类的制作和使用

4:内存图

(1)一个对象的内存图:    一个对象的基本初始化过程。(2)二个对象的内存图:    方法的共用。(3)三个对象的内存图:    两个引用变量指向同一个对象。

5:成员变量和局部变量的区别?

(1)在类中的位置不同:    成员变量:类中方法外。    局部变量:方法中或者方法声明上。(2)在内存中的位置不同:    成员变量:堆中。    局部变量:栈中。(3)生命周期不同:    成员变量:随着对象的存在而存在,随着对象的消失而消失。    局部变量:随着方法的调用而存在,随着方法的调用完毕而消失。(4)初始化值不同;    成员变量:有默认初始化值。    局部变量:没有默认初始化值。问题:    成员变量和名称可以不可和局部变量一样呢?        可以。
class Demo {            int x = 10;            public void show() {                int x = 20;                System.out.println(x);            }            public void method() {                System.out.println(x);            }        }

6
变量什么时候该定义成员变量

(1)如果变量和类之间存在这描述性的关系,就该定义为成员变量。(2)注意:    变量的定义范围越小越好。

7
引用类型作为形式参数和返回值

(1)引用类型作为参数和返回值的问题:    A:如果一个方法的形式参数是一个类名,那么,这里肯定需要的是该类的对象。    B:如果一个方法的返回值是一个类名,那么,这里返回的肯定是该类的对象。
class Demo {            public void printStudent(Student s) {                s.show();            }            public Student getStudent() {                Student s = new Student();                return s;            }        }

8
匿名对象

(1)就是没有名字的对象。(2)应用场景:    A:调用方法。但是仅仅只调用一次的时候使用。    new Persion().getName();    B:作为实际参数传递。        Demo d = new Demo();        d.printStudent(new Student());

9
封装

(1)隐藏实现细节,提供公共的访问方式。(2)体现有哪些呢?    A:类    B:方法体    C:private修饰成员变量(3)private关键字:    是私有的意思。可以修饰类中的成员变量和成员方法。    注意:被它修饰的成员只能在本类中被访问。(4)标准代码:
class Student {            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;            }        }

10
构造方法

(1)创建对象,并对对象的内容进行初始化。(2)特点:    A:方法名和类名相同。    B:没有返回值类型。    C:没有返回值。(3)注意事项:    A:如果我们没给构造方法,系统给出一个默认构造。无参构造。    B:如果我们给出了构造方法,系统将不再提供构造方法。        这个时候,要么我们不使用无参构造方法。        要么,自己定义一个,然后使用。        推荐:自己给出无参构造方法。(4)给成员变量赋值的方式:    A:无参+setXxx()    B:带参(5)获取值:    getXxx()(6)标准代码:
class Student {            private String name;            private int age;            public Student() {}            public Student(String n,int a) {                name = n;                age = a;            }            public void setName(String n) {                name = n;            }            public String getName() {                return name;            }            public void setAge(int a) {                age = a;            }            public int getAge() {                return age;            }        }

11
this关键字。

(1)代表当前类的一个对象。谁调用代表谁。(2)应用场景:    A:使用本类的成员变量(掌握)        this.变量名;    B:使用本类其他构造方法        this(...)    C:使用本类的其他成员方法        this.方法名();(3)标准代码:
class Student {            private String name;            private int age;            public Student() {}            public Student(String name,int age) {                this.name = name;                this.age = age;            }            public void setName(String name) {                this.name = name;            }            public String getName() {                return name;            }            public void setAge(int age) {                this.age = age;            }            public int getAge() {                return age;            }        }
测试类:            Student s = new Student();            s.setName("袁郎");            s.setAge(27);            System.out.println(s.getName()+"---"+s.getAge());            Student ss = new Student("袁郎",27);            System.out.println(ss.getName()+"---"+ss.getAge());
(4)案例:    A:手机标准代码案例及测试。    B:长方形标准代码案例及测试。

12
static关键字

(1)是静态的意思,可以修饰类中成员变量和成员方法。(2)静态的特点:    A:随着类的加载而加载。    B:优先于对象存在。    C:被所有对象共享的数据。        这个也被我们作为为什么要使用静态的一个判断条件。        举例:饮水机和水杯。    D:让我们的调用多了一种方式:        a:非静态的数据,必须创建对象访问。        b:静态的数据,可以通过对象访问,也可以通过类名访问。(3)静态的访问问题:    A:非静态方法        非静态成员变量        静态成员变量        非静态成员方法        静态成员方法      B:静态方法        静态成员变量        静态成员方法      总之:静态只能访问静态。    称呼:        静态的成员被成为类成员。跟类相关。        非静态的成员被称为实例成员。跟对象相关。(4)main方法的解释以及如何接收键盘录入数据:    public:权限最大    static:静态,不用创建对象。    void:返回没有意义。    main:大家都是这样做的。    String[] args:接收键盘录入数据。    接收键盘录入的格式:        java HelloWorld hello world java        java HelloWorld 10 20 30

13
代码块

(1)用{}括起来的代码。(2)分类:    A:局部代码块。        方法内。        作用:限定变量的生命周期,提高效率。    B:构造代码块。        类中,方法外。        作用:把所有构造方法中相同的代码定义到一处。    C:静态代码块。        类中,方法外,加static。        作用:在整个系统运行过程中只执行一次的内容。(3)面试题:    构造方法,构造代码块,静态代码块的执行流程?    静态代码块 -- 构造代码块 -- 构造方法。    特点:        静态代码块只执行一次。        构造代码块每次调用构造方法都执行。

14
一个类的实例化过程

Person p = new Person();A:把Person.class加载到内存。B:在栈内存为p变量开辟空间。C:在堆内存为Person对象开辟空间。D:对成员变量进行默认初始化。E:对成员变量进行显示初始化。F:如果有构造代码块,通过构造代码块对成员变量进行初始化。G:通过构造方法对成员变量进行初始化。I:对象初始化完毕,把堆内存的地址给p变量。

———–android培训、java培训、java学习型技术博客、期待与您交流!————

0 0
原创粉丝点击