黑马程序员_面向对象知识点整理总结

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

面向对象概述并举例说明


面向过程 强调过程,执行者,强调的是功能行为
面向对象 强调对象,指挥者,将功能封装进对象,强调具备了功能的对象。
面向对象举例
煎饼果子
面向对象思想的特点
1:它是一种更符合人们思考习惯的思想
2:它使复杂的内容简单化
3:它使我们从执行者变成了指挥者
面向对象的特点
1:封装
2:继承
3:多态
开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情。
类和对象的关系


使用计算机语言就是不断的在描述现实生活中的事物。
java中描述事物通过类的形式体现,类是一组相同属性行为的对象的抽象。
对象即是该类事物实实在在存在的个体。
举例:
人就是一个类(是把每一个相同属性行为的对象进行抽取)
人的属性:姓名,年龄,身高,体重等
人的行为:吃饭,睡觉,说话,跑,跳等
而我们就是对象(是实实在在存在的个体),具体每个人叫什么名字,年龄多大,身高多高,体重多重等,吃饭怎么吃,睡觉怎么睡,说话怎么说等
描述任意一类事物就是在描述他的属性和行为
分析这句话的属性和行为:
上得了厅堂,下得了厨房,写得了代码,查得出异常,杀得了木马,翻得了围墙(黑客技术),开得起好车,买得起新房,斗得过二奶,打得过流氓。
如何创建对象
(1)类 对现实世界中事物的描述(成员变量和方法)
(2)对象 现实世界中实际存在具体的个体
(3)对象的使用

class Person {
    String name;//定义姓名属性
    int age;//年龄属性
    public void speak() {
        System.out.println("姓名:" + name + ",年龄:" + age);
    }
}
成员变量和局部变量
(1)作用范围
局部变量:方法内public void method(String name) {}
成员变量:类中,对整个类有效{成员变量分为两种一种静态的,一种非静态的}
(2)存储空间
局部变量:栈内存
成员变量:堆内存{静态的成员变量在方法区,非静态的在对象中在堆内存中}
(3)初始化值
局部变量:在使用前必须手动给值
成员变量:jvm默认初始化值。int 0 byte 0 short 0 long 0 double 0.0 boolean false char '\u0000'
class Person {
    int num = 10;
    public void method(){
        int num = 30 ;
        System.out.println(num);
    }
}
匿名对象
(1)当对对象中的功能只执行一次的时候使用。否则,请你使用有名字的对象。
Person p = new Person();
p.show();
p.show();
new Person().show();
new Person().show();
(2)用于作为实际参数进行传递。
Person p = new Person();
method(p);
method(new Person());
public static void method(Person p){}
(3)可以调用匿名对象的属性。
封装
(1)封装的好处:便于重复使用,安全性高。
(2)private权限修饰符
class Demo{
    private int age;//把属性私有对外提供公共的访问方法,可控性提高了
    public void setAge(int age){//设置是setXxx要传参数
        if(age>0 && age<=200){
            this.age = age;
        }else { 
            System.out.println("请回火星");
        }
    }


    public int getAge(){             //获取是getXxx要返回值类型,返回值类型和属性一致
        return age;
    }
    /*
    设置是setXxx要传参数
    获取是getXxx要返回值类型,返回值类型和属性一致
    */
}
class DemoTest{
    public static void main(String[] args) {
        Demo d = new Demo();
        d.setAge(-20);
        System.out.println(d.getAge());
    }
}
this关键字及其使用场景
(1)代表当前对象的引用。使用的时候,谁调用方法,this就代表谁。
(2)用this的情况
A:当局部变量和成员变量重名的时候,可以用this进行区分。
B:this调用成员方法
C:构造函数中使用this
this() 必须放在第一行。
同下面的道理:
Person(String name){
    this.name = name;
    System.out.println("有一个参数的构造函数");
}
Person(String name,int age){
    this("张三");
    this.name = name;
    this.age = age;
    System.out.println("有两个参数的构造函数");
}
Person p = new Person("lisi",20);
Person p2 = new Person("wangwu");

你可能感兴趣的:(黑马程序员_面向对象知识点整理总结)