Java类,对象,包,成员变量

本文介绍了Java中的类和对象概念,包括类的抽象描述、对象的实例化,以及包的作用、声明和使用规则。此外,还详细讲解了成员变量的声明、实例变量的特点和内存分析,特别是JVM运行时内存区域和Java对象在内存中的结构。
摘要由CSDN通过智能技术生成

Ⅰ.类和对象

     1、什么是类

是一类具有相同特性的事物的抽象描述,是一组相关属性行为的集合。

  • 属性:就是该事物的状态信息。

  • 行为:就是在你这个程序中,该状态信息要做什么操作,或者基于事物的状态能做什么。

     2.  如何定义类

                1、类的定义格式

                     【修饰符】 class 类名{ }

                        eg:public class Student{ }

2、什么是对象

对象是一类事物的一个具体个体(对象并不是找个女朋友)。即对象是类的一个实例,必然具备该类事物的属性和行为。

        对象的创建                

new 类名()//也称为匿名对象
//把创建的对象用一个引用数据类型的变量保存起来,这样就可以反复使用这个对象了
类名 对象名 = new 类名();

3、类与对象的关系

  • 类是对一类事物的描述,是抽象的

  • 对象是一类事物的实例,是具体的

  • 类是对象的模板,对象是类的实体

Ⅱ.包(Package)

        1 包的作用

                (1)可以避免类重名:有了包之后,类的全名称就变为:包.类名

                (2)可以控制某些类型或成员的可见范围, 如果某个类型或者成员的权限修饰缺省的话,那么就仅限于本包使用。

                (3)分类组织管理众多的类

        2 如何声明包

                package 包名;

                注意:

                        (1)必须在源文件的代码首行

                        (2)一个源文件只能有一个声明包的package语句

                包的命名规范和习惯:

                        (1)所有单词都小写,每一个单词之间使用.分割

                        (2)习惯用公司的域名倒置开头

                                例如:com.haogu.xxx;

建议大家取包名时不要使用“java.xx"包

        3 如何跨包使用类

                注意:只有public的类才能被跨包使用

                (1)使用类型的全名称

                例如:java.util.Scanner input = new java.util.Scanner(System.in);

                (2)使用import 语句之后,代码中使用简名称

                        import语句告诉编译器到哪里去寻找类。

                        import语句的语法格式:

                import 包.类名;
                import 包.*;

注意:

使用java.lang包下的类,不需要import语句,就直接可以使用简名称

import语句必须在package下面,class的上面

当使用两个不同包的同名类时,例如:java.util.Date和java.sql.Date。一个使用全名称,一个使用简名称

Ⅲ.成员变量

1. 如何声明成员变量

        【修饰符】 class 类名{
                    【修饰符】 数据类型  成员变量名; 
        }

                eg:public class Person{
                                    String name;
                                    char gender;
                                    int age;
                        }

2. 对象的实例变量

                

1、实例变量的特点

(1)实例变量的值是属于某个对象的

  •                 必须通过对象才能访问实例变量
  •                 每个对象的实例变量的值是独立的

(2)实例变量有默认值

2、实例变量的访问

                对象.实例变量

3、实例变量的内存分析        

        内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来。我们编写的程序是存放在硬盘中的,在硬盘中的程序是不会运行的,必须放进内存中才能运行,运行完毕后会清空内存。Java虚拟机要运行程序,必须要对内存进行空间的分配和管理,每一片区域都有特定的处理数据方式和内存管理方式。

JVM的运行时内存区域分为:方法区、堆、虚拟机栈、本地方法栈、程序计数器几大块。

Java对象保存在内存中时,由以下三部分组成:

  • 对象头

    • Mark Word:记录了和当前对象有关的GC、锁等信息。(后面再讲)

    • 指向类的指针:每一个对象需要记录它是由哪个类创建出来的,而Java对象的类数据保存在方法区,指向类的指针就是记录创建该对象的类数据在方法区的首地址。该指针在32位JVM中的长度是32bit,在64位JVM中长度是64bit。

    • 数组长度(只有数组对象才有)

  • 实例数据

    • 即实例变量的值

  • 对齐填充

    • 因为JVM要求Java对象占的内存大小应该是8bit的倍数,如果不满足该大小,则需要补齐至8bit的倍数,没有特别的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值