类与对象,构造方法

类与对象,构造方法

 

一、类与对象
  
     关系:客观世界中每一个具体的个体都是一个对象,而拥有一些对象的共同基本特征就形成
一个个类。例如,张三、李四都是对象,而人类、书包、电脑都是类。类中有属性和方法。要使用一个类就要产生对象,对象之间是靠各个属性的不同来区分的。


    1、类名字的第一个字母要大写
    2、属性——访问权限 属性类型 属性名称
    3、方法——访问权限 返回值类型 方法名称(参数类型 参数名称,...){
                                       方法体

                                   }
  

class Student{ 
    String name; 
    int age; 
    public void tell(){ 
        System.out.println("姓名:"+name+", 年龄:"+age);
    }
} 

 

 对象

      类名 对象名称 = new 类名();
      引用数据类型使用这样的定义样式。

 

public class Test{
    public static void main(String[] args){ 
        Student stu = new Student(); //创建并实例化对象 
    } 
} 

 

     所有的对象名称在栈内存中保存,对象的具体内容保存在对应的堆内存中,即栈中存放的是堆空间的地址。必须使用关键字new才能开辟堆内存空间。当创建多个对象时,使用上述方法可以分别开辟堆内存。
    注意! 一个栈内存空间智能指向一个堆内存空间,而一个堆内存空间的使用权可以给多个栈内存空间,每个栈内存空间都可以修改堆内存的内容。

public class Student{ 
    public static void main(String[] args){ 
        Student stu1 = new Student();        //实例化对象stu1 
        Student stu2 = null;                       //声明对象stu2 
        stu2 = stu1;                     //把stu1的堆内存空间使用权给stu2 
        stu1.name = "Jack"; 
        stu1.age = 25;                //设置stu1的属性,stu2的也改变
     stu2.name= "Rose"; 
        stu2.age = 22;              //设置stu2中的属性,此时stu1也与stu2相同 
     stu1.tell(); 
        stu2.tell();                            //输出两个对象的信息
          //可以发现都是 姓名:Rose, 年龄:22————这就是引用传递 
   } 
}

 

二、构造方法

    在对象实例化时,用了这样的结构:A a = new A();这之中就调用了构造方法。可以利用构造方法在对象实例化时就直接把对象的值赋值给属性。

   

构造方法的定义:

    1、构造方法名称与类名相同

    2、构造方法没有返回值类型的声明

    3、没有return返回一个值

 

所有类都存在一个构造方法,当类中没有声明构造方法时,编译时会自动生成一个无参的构造方法  public Student(){} 如果一个类已经声明了构造方法,那么编译时就不会再生成无参构造方法了。

 

构造方法是可以重载的。

 

class Student{ 
    String name;
    int age; 
    public Student(String name){ 
        this.name = name;              //构造方法,一个参数name 
    } 
    public Student(String name,int age){ 
        this.name = name;
        this.age = age;            //构造方法,两个参数name,age 
    } 
    public void tell(){ 
        System.out.println("姓名:"+name+", 年龄:"+age); 
    } 
} 

public class Test{ 
    public static void main(String[] args){ 
        Student stu = new Student("Jack"); //实例化,调用一个参数的方法 
      stu.tell();                         //得到的信息是 姓名:Jack, 年龄:0 
    } 
}

   

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值