构造方法和匿名对象

构造方法和匿名对象

1,声明并实例化对象,这时候实例化对象中的属性没有任何数据
2,需要通过setter方法为类中属性设置内容。
传统实例化对象

class Person{
       //定义一个类
  private  String name;  //人员的姓名
   private int age ;  //人的年龄
   public void tell(){
     
   System.out.println("姓名:"  + name + ",年龄:" + age);     
      public void setName(String n){
     
    name = n;
    }
    public void setAge(int a){
     
    age = a ;
    }
    piblic String getName(){
     
return name;
}
      public int getAge(){
     
    return age;
}
        }
   }
   public class JavaDemo{
          //主类
   public  static void main (String args[]{
     
   //1,对象初始化准备
   Person per = new Person ();  //声明并实例化对象
   per.name = "张三“;//在类外部修改属性
   per.age = 18;     //在类外部修改属性
   //对象的使用
   per.tell();     //进行方法的调用
   }

现在如果类中有8个属性,那么需要用8个setter方法来进行内容设置,Java中考虑到对象问题,专门提供构造方法:可以通过构造方法来实现实例化对象中属性 初始化处理。new关键字。
Java中构造方法定义要求:
*构造方法名称必须与类名称保持一致;
*构造方法不允许设置任何的返回值类型,既:没有返回值定义;
*构造方法是在使用关键字new实例化对象的时候自动调用的
定义构造方法:

class Person{
       //定义一个类
  private String name;  //人员的姓名
   private int age ;  //人的年龄
   //方法名称与类名称相同,并无返回值类型
   public Person (String n,int a){
          //定义有参构造
   name = a ;       //为类中的属性赋值(初始化)
   age = a;            //为类中的属性赋值(初始化)
   }
   public void tell(){
     
   System.out.println("姓名:"  + name + ",年龄:" + age);     
        }
   }
   public class JavaDemo{
          //主类
   public  static void main (String args[]{
     
   //1,对象初始化准备
   Person per = new Person ("张三"18);  //声明并实例化对象

   //对象的使用
   per.tell();     //进行方法的调用
   }

Person per = new Person():
Person 主要是定义对象的所属类型,类型决定了你可以调用的方法;
per 实例化对象的名称,所有的操作通过对象来进行访问;
new 开辟一块新的堆内存空间
Person(“张三”,18) 调用有参构造 Person()调用无参构造
在Java程序里考虑到程序结构的完整性,所有的类都会有提供构造方法,这个构造方法是在编译的时候自动创建,在类中有明确的构造方法,编译时就不会自动创建。

为什么构造方法上不允许设置返回值类型?
如果构造方法使用void,那么构造方法就会和普通方法结构完全相同,编译时会统一当作普通方法处理。
构造方法和普通方法的区别:
构造方法是在类对象实例化的时候调用,而普通方法是类对象实例化产生后调用的

构造方法的重载:参数类型及个数

setter修改属性数据

定义对象的名称:类名称 对象名称 = null
实例化对象: 对象名称 = new 类名称()

你可能感兴趣的:(Java,笔记,java)