黑马程序员——Java基础——面向对象、匿名对象、封装

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

 传智基础班第6天内容笔记:

 面向对象思想:面向对象是基于面向过程的编程思想;

    面向对象思想特点:1、符合我们思想习惯的思想  2、将复杂的事情简单化 3、我们从执行者变成了指挥者
    面向对象三个特征:1,、封装(encapsulation) 2、继承(inheritance) 3、多态(polymorphism)

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

    封装好处:隐藏实现细节,提供公共的访问方式
                        提高了代码的复用性
                        提高安全性

    封装原则:  将不需要对外提供的内容都隐藏起来。
                          把属性隐藏,提供公共方法对其访问。

    继承:继承是从已有的类中派生出新的类,
                新的类能吸收已有类的数据属性和行为,并能扩展新的能力。

    继承的好处:提高了代码的复用性;                                                                       继承的弊端:类的耦合性很强。
                            多个类相同的成员可以放到同一个类中;
                            提高了代码的维护性;
                            如果功能的代码需要修改,修改一处即可  让类与类之间产生了关系,是多态的前提;

   继承的特点:Java只支持单继承,不支持多继承
                           Java支持多层继承(继承体系)

   继承的注意事项:子类只能继承父类所有非私有的成员(成员方法和成员变量),其实这也体现了继承的另一个弊端:打破了封装性
                                   子类不能继承父类的构造方法,但是可以通过super(后面讲)关键字去访问父类构造方法,  不要为了部分功能而去继承

   多态概念:一个事物的多种形态,多态前提和体现有继承关系或者实现关系  有方法重写有父类引用指向子类对象
   成员访问特点:方法的运行看右边,其他都看左边

多态的好处
  提高了程序的维护性(由继承保证)
  提高了程序的扩展性(由多态保证)
 多态的弊端:
  父类不能访问子类的特有方法
  如果非要访问,向下转型(强转)

向上转型
  从子到父
  父类引用指向子类对象
 向下转型
  从父到子
  父类引用转为子类对象

匿名对象: 就是没有名字的对象
是对象的一种简化表示形式
         匿名对象的两种使用情况:

对象调用方法仅仅一次的时候
new Student().study();
作为实际参数传递
t.method( new Student() );

匿名对象实例演示:

class Student{

                  String name;

            public void study(){

                        System.out.println("学习");

            }

}

class NiMingDemo {

             public static void main(String[] args) {

                                Student s = new Student();

                                           method( s );

                                           method( new Student() );

  }

             public static void method(Student a){

                                 a.study();

              }

}

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

好处:
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性隐藏,提供公共方法对其访问

封装实例演示:

class Person{

                 //成员变量私有

                   private int age = 18;

                //提供一个公共访问方法,让别人可以设置年龄

                 public void setAge(int a){

                 //把a的值 赋值为成员变量age

                             if (a <= 18){

                                    age = a;

                             }

                   }

                 //提供一个公共访问方法,让别人可以获取到年龄

                public int getAge(){return age;

                }

   }

    class OOPDemo {

                     public static void main(String[] args) { 

                                          //创建Person类对象

                                        Person p = new Person();

                                         //为年龄赋值

                                         p.age = 18;

                                       //获取age的值

                                                int result = p.getAge();

                                            System.out.println(result);

                     }

}


private关键字: 私有的
private关键字:
是一个权限修饰符。
可以修饰成员(成员变量和成员方法)
被private修饰的成员只在本类中才能访问
             this关键字:
this:代表所在类的对象引用
方法被哪个对象调用,this就代表那个对象
        使用this应该注意:

                                     1,、只能在构造方法中使用this调用其他的的构造方法,不能在成员方法中使用。

                                      2、在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值