Java基础学习总结——面向对象1,(oop思想与构造方法)

一、面向过程的思想和面向对象的思想

       面向过程当你拿到一个问题时,你分析这个问题不再是第一步先做什么,第二步再做什么,这是面向过程的思维,

      面向对象:先分析这个问题里面有哪些类和对象,这是第一点,然后再分析这些类和对象应该具有哪些属性和方法。这是第二点。最后分析类和类之间具体有什么关系,这是第三点。

      面向对象有一个非常重要的设计思维:合适的方法应该出现在合适的类里面

二、类(对象)之间的关系

    类是用于描述同一类的对象的一个抽象的概念,类中定义了这一类对象所具有的静态属性和动态属性

    类可以看成一类对象的模板,对象可以看成该类的一个具体实例

例如:职员这个类该怎么抽象出来?也是从两个方面,一方面是它的静态属性,另一方面它的动态属性

  职员有哪些属性呢?有姓名,年龄,目前工资数额等属性,他有哪些方法呢?让这个职员来显示姓名,显示年龄,修改姓名,领取工资。当然显示姓名,显示年龄,修改姓名,领取工资这些也可以让别人来做,但面向对象的设计思维是最合适的方法应该出现在最合适的类里面。显示姓名,显示年龄,修改姓名,领取工资由谁来做更合适呢,那就是职员自己最合适。所以这些方法应该出现在职员这个类里面。

三,成员变量 

 (1)成员变量和局部变量有一个重要区别:成员变量在类里面声明时如果不进行初始化,那么JAVA会默认给它初始化,而局部变量JAVA不会默认给它初始化,所以在方法里面声明一个局部变量如果不给它初始化时就会出错。定义一个成员变量,不给它初始化,然后直接打印这个成员变量,打印出来的结果就是JAVA默认的初始化的值。

(2) char型数据,默认值为空。

    String不是基本数据类型,默认值为空,默认长度为0。


四,构造方法(与类名相同)

实质:每个类都有构造方法,如果没有自己定义,它会提供一个默认的构造方法,所以创建对象的时候至少调用

          一 个构造方法用new+构造方法创建一个新的对象。你new一个对象的时候,实际上你调用的是一个构造方法,并且没有返回值。

分类,分为有参构造和无参构造

作用:可以直接对对象进行实例化。

 调用完成后数据的释放: 当方法调用完成之后,栈里面为它分配的空间全部都要消失,即把这个方法调用时分配给它的内存空间释放出来,所以构造方法调用完成之后,栈内存里面分配的内存空间自动消失了。这样就把它们所占的空间让了出来,让其他的方法去占用。new出来的对象则永远留在了堆内存里面。

五,构造代码块(对所有的对象进行统一的初始化chuli)

作用

1:给对象进行初始化。对象一建立就运行并且优先于构造函数。

2:与构造函数区别

1:构造代码块和构造函数的区别,构造代码块是给所有对象进行统一初始化, 构造函数给对应的对象初始化。

    2:构造代码块的作用:它的作用就是将所有构造方法中公共的信息进行抽取。避免代码的重复

class Perosn{

private int id;

private String name;

private int age;

{

cry();// 每个Person对象创建出来都会执行这里的代码

}

public Perosn(){

cry();

}

public Perosn(int id, String name, int age) {

this.id = id;

this.name = name;

this.age = age;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public void cry(){

System.out.println("哇哇哇....");

}

}





猜你喜欢

转载自blog.csdn.net/abingr/article/details/80542193