Java_面向对象之构造函数

构造函数:
特点:
1,函数名与类名相同
2,不用定义返回值类型
3,没有具体的返回值

作用:
给对象进行初始化

注意:
1,默认构造函数的特点
2,多个构造函数是以重载的形式存在的


class Person
{
 /*
 构造函数。
 特点:任何用class定义的类中,都有一个默认的空参数的构造函数
 用于给该类对象进行初始化

 如果该类中制定了具体的构造函数,那么默认的构造函数就没有了


 构造函数和一般函数的不同。
 1,在书写格式上不同
 2,运行上的不同
  构造函数是在对象一创建就被调用了
  一般函数是对象创建完成后,所需时才被调用

 */
 Person()
 {
  System.out.println("Person run");
 }

}

 

 

class  ConsDemo
{
 public static void main(String[] args)
 {
  /*
  创建的每个对象都是一个实体,每个实体都必须要进行初始化后才可以使用。
  实体的初始化是需要通过动作完成的,而这个动作就是构造函数

  构造函数作用:
   给对象进行初始化
  

  */
  Person p=new Person();

  System.out.println("Hello World!");
 }
}

 

 

 

 

 


class Person
{
 private String name;
 private int age;

 /*
 当一个类中存在着多个构造函数时,
 他们的存在形态是重载

 构造函数什么时候用?
 当描述事物时,该事物一存在就具备着一些属性和行为。
 那么就将这些内容定义在构造函数中
 只在对象初始化的过程中执行一次
 */

 Person()
 {
  System.out.println("person run");
 }

 Person(String s)//人对象一建立就具备姓名
 {
  name = s;
   
 }
 Person(String s,int a)
 {
  name =s ;
  age =a;
 }

 public void setName(String n)
 {
  name = n;
 }
 public String getName()
 {
  return name;
 }
 public void speak()
 {
  System.out.println(name+":"+age);
 }
}

 

class ConsDemo2
{
 public static void main(String[] args)
 {
  Person p= new Person("lisi");
  /*
  new Person("lisi");
  new:用在堆内存中开辟空间的关键字,用于创建对象
  Person:明确要创建的Person类的对象
  ("lisi"):创建Person类的对象,需要通过哪个构造函数进行初始化,这里需要用到一个字符串参数的构造函数

 

  */
  p.setName="lisan";
  p.setName="liwangcai";
  p.speak();

  Person p1 = new Person("wangwu",29);
  p1.speak();
 }
}

posted @ 2017-11-16 16:15  BirdieForLove  阅读(128)  评论(0编辑  收藏  举报