黑马培训员_java02_面向对象

来源:互联网 发布:淘宝买家秀大尺度男 编辑:程序博客网 时间:2024/05/01 19:40

——- android培训、java培训、期待与您交流! ———-
面向对象是基于面向过程的一种语言,有一个引用的中标志,就是它们都有类的概念,而通过类可以创建任何多个具有相同属性和方法的对象。每个对象都是基于引用类型创建的。
(1)对对象的理解
对象本身已知的事物被称为实例变量,而对象可以执行的方法叫做方法或者函数。
实例变量代表对象的状态(数据),且该类型的每一个对象都会独立的拥有一份该类型的值。所以我们可以将对象当做实例。
对象带有读取或者操作实例变量的方法是常见的情形。举例来说,Person类有name属性,就会有getName()与serName()方法,用来获取和设置name。因此说对象时带有实例变量和方法,但是他们都是类设计中的一部分。
(2)类与对象两者之间的不同
类不是对象,类是对象的蓝图。它会告诉虚拟机如何创建某种类型的对象。根据某类创建出的对象都会有自己的实例变量,比如,我们可以给Person类创建去不同的姓名,性别,学号等。
(3)面向对象的三大特征:封装(Encapsulation),继承(inheritance),多态(polymorphism)
[1]封装,是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。(即在我们使用对象的时候我们不需要知道对象的内部是否进行完成工作的操作只需要只会对象去做只需要知道结果就ok了)。
[2]封装的好处。
将变量隔离,便于使用,不用了解内部的构成就能知道结果。
提高了重用性。
提高了安全性,不能随意改变变量。
[3]封装的原则
将不需要对外提供的内容都隐藏起来。把属性隐藏起来,提供公共方法对其进行访问。函数就是代码中最小的封装体,类也是一个封装体。
(4)构造函数。为了便于使用new关键字创建对象实例,类提供了构造函数,构造函数特点如下:
[1]构造函数与类名相同,不返回任何数据。不被继承,不抛出异常。
[2]可以使用new关键字创建实例对象,会自动调用该构造函数。
[3]当类中没有构造函数时,编译器会自动调用类中的一个无参的构造函数。
以下代码错误的原因是,因为已经存在构造函数,所以编译器不会再添加默认的构造函数。

public class Person{    private int age;    private String name;    Person(String name,int age ){        this.name=name;        this.age=age;    }}public class TestClass {    public static void main(String[] args) {        Person p=new Person();    }}

每个对象的每个实例方法都拥有一this变量指向对象自己,提供自己的方法内部代码使用,上面的this变量就是指向一个Person类的实例。
(5)构造代码快。
[1]作用,给对象进行实例化。对象一建立就运行,而且是优于构造函数执行的。
[2]和构造函数的区别。构造代码快是给所有的对象进行统一初始化,而构造函数是对应的对象进行初始化。

class Person{       private String name;    Person(String name){        this.name=name;             System.out.println("构造函数");         }    {        System.out.println("构造代码块");    }    public String getName(){        return name;    }    public void setName(String name){        this.name=name;        }}public class TestClass {        public static void main(String[] args) {        Person p=new Person("xiao");    }}

使用getName()和setName()方法得到设置name的属性,这样实现了数据的封装。

0 0
原创粉丝点击