Day05_20_Java中类的创建和对象的实例化

类的创建和对象的实例化

  • 类的定义

    • 类属于引用数据类型,java语言中所有的.class都属于引用数据类型

    • 在类体当中,方法体之外定义的变量被称为 成员变量,成员变量没有赋值,系统默认是0;

    • 语法结构:

      [修饰符列表]  class  类名{
                 
             属性
      
             方法
          }
      

*Eg:学生类 (描述所有学生对象的共同特征)

  - 学生对象有哪些状态信息(属性):学号 姓名 性别 年龄  住址...

  - 学生对象有哪些动作信息(方法):吃饭 睡觉 学习  玩   唱歌...

  - 在类体中描述对象的状态信息(基本信息) 和  动作信息(行为)。 属性通常采用变量的方式来定义,动作采用方法的方式来定义。

  - 在类体当中,方法体之外定义的变量又被称为成员变量,成员变量没有赋值,系统默认是 0/null。
	
  - 实例

    ```

 public class Student            //定义一个类,类名是Student
 
    {    
   
      // 属性  描述的是对象的基本信息

        int Sno;
	String Name;
	boolean Sex;
	int Age;
	String Address;

      //方法  描述的是对象的动作信息

      public void study(){

             System.out.println("学生在学习");
      }
      
     
      public void sing(){

            System.out.println("学生在唱歌");
      }
  }

对象的实例化

  • 实例化对象的语法

    new 类名();

    eg:
    student s=new student();

    • new 是java语言当中的一个运算符

    • new 运算符的作用是创建对象,创建的同时在JVM堆内存中开辟新的内存空间

  • JVM 内存结构

    • 方法区内存:在类加载的时候,class字节码文件被加载到该内存空间当中。

    • 栈内存(局部变量):方法代码片段执行过程中,会给该方法分配内存空间,在栈内存中压栈。

    • 堆内存:new的对象在堆内存中存储。

    • 什么是对象? new运算符在堆内存中开辟的内存空间称为对象

    • 什么是引用?引用一个变量就是在变量中保存了另一个java对象的内存地址。

    • java语言当中,程序员不能直接操作堆内存。只能通过引用去访问堆内存当中的对象内部的实例变量。

    • 局部变量在栈内存中存储,成员变量中的实例变量在堆内存的java变量内部存储

    • 实例变量是一个对象一份,100个对象100份。

    • 实例变量不能直接通过 类名.变量的方式访问,必须先创建对象,才能访问类下的实例变量。

    • 访问实例变量的语法格式:

      1.读取数据:引用.变量名; int stu=s.sno; String name=s.name;

      2.修改数据:引用.变量名=值;

Eg:

主类:

public class day02 {

   //main方法
public static void main(String[] args) {

      //实例化Student对象	
 Student s=new Student();  

      //给对象的属性赋值 

    s.Sno=10;
	    s.Age=20;
	    s.Name="jock";
	    s.Address="天津市西青区啦啦啦啦啦啦啊0201047";

   // 获取并输出对象的属性值

    int a=s.Sno;
	    int b=s.Age;
	    String c=s.Name;
	    String d=s.Address;

    System.out.println(a);
	    System.out.println(b);
        System.out.println(c);
        System.out.println(d);


 // 实例化 User类

  User u=new User(); //创建USER对象

// 给新创建的User对象赋值,并输出属性值

    	u.no=110;
    	u.name="jack";
    	u.addr=new Address();
    	u.addr.city="北京";
    	u.addr.street="通州区永顺镇珠江帝景7号楼2单元1625";
    	u.addr.zip=100215;
    	
    	System.out.println(u.name);
    	System.out.println(u.addr);
    	System.out.println(u.no);
    	
    	System.out.println(u.no+" "+u.name+"居住在"+u.addr.city+u.addr.street+"  "+u.addr.zip);

// 定义一个Student类

    public class Student            //定义一个类,类名是Student
 
    {    
   
      // 属性  描述的是对象的基本信息

        int Sno;
	String Name;
	boolean Sex;
	int Age;
	String Address;

      //方法  描述的是对象的动作信息

      public void study(){

             System.out.println("学生在学习");
      }
      
     
      public void sing(){

            System.out.println("学生在唱歌");
      }
  }

// 定义一个 User类

    	public class User {

    	int no;// 基本数据类型
    	String name;//引用数据类型
    	Address addr;//Address 引用数据类型   addr 是一个实例变量
            }

// 定义一个Address类

    	Address类:

    	public class Address {
    	String city;
    	String street;
    	int zip;
            }

------------恢复内容结束------------

posted @ 2021-03-29 15:20  失昼  阅读(297)  评论(1)    收藏  举报