栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java知识点(六):类和对象、引用类型、null和NullPointerException

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java知识点(六):类和对象、引用类型、null和NullPointerException

文章目录
  • Java知识点
    • 一、什么是类?什么是对象?
    • 二、类的定义
      • 成员变量
      • 成员方法
      • 对象的创建
      • 成员变量初始化
    • 三、引用类型
      • 1、什么是引用
      • 2、引用类型声明
      • 3、类型画等号
        • 引用类型画等号:指向同一个对象
        • 基本类型之间画等号:赋值
    • 四、null和NullPointerException
      • null:空
      • NullPointerException:空指针异常
  • case


Java知识点

包含什么是类,什么是对象,如何创建类和对象,引用类型的概念,null和NullPointerException。


一、什么是类?什么是对象?

1)类是一个抽象的定义。简单来说就是分类

2)对象:真实存在的单个的个体

3)现实世界是由很多个对象组成的,基于对象抽出了类

4)类中定义了所有对象所共有的特征/属性(静),称之为“成员变量”。同时也定义了所有对象所共有的行为(动),称之为“方法”

5)一个类可以创建多个对象;同一个类的多个对象,结构相同,数据不同

6)类是对象的模板,对象是类的具体的实例

二、类的定义 成员变量
class 类名{
	成员变量类型 变量名称;
}
class score{
	int a;
	int b;
}
成员方法

类中除了定义成员变量,还可以定义方法

class 类名{
	修饰符 返回值类型 方法名称(参数列表) {
		... ... ... //方法体
	}
}
class max{
	public void input(int c) {
		System.out.println(b);
	}
}
对象的创建

当类定义完成后,可以使用new运算创建该类的对象。对象创建的过程一般称为类的实例化

new 类名();
new score();
//使用new关键字创建了一个score类的对象
成员变量初始化

对象创建后,其成员变量可以按照默认的方式初始化

成员变量类型默认初始值
数值类型(byte、short、int、long、float、double)0
booleanfalse
char/u0000
应用类型null
三、引用类型 1、什么是引用

1)除了八种基本类型之外,用类名(接口、数组)声明的变量称为引用类型变量,简称“引用”

2)引用类型中存储的是某个对象在内存中的地址信息。引用的功能在于访问对象

2、引用类型声明

max m1 = new max();

1)用某个类名声明的引用类型变量可以存储该类对象的地址信息,通常称为“指向该类的对象”

2)当一个引用类型变量指向该类的对象时,就是通过这个变量对对象实施访问

2.1)“max m1 = new max()”语句等号右边创建了一个max类型的对象,存放在推内存中;等号左边声明了一个名为m1的max类型变量,存储在栈内存中,赋值表达式将创建对象的地址信息赋值为m1,可以通过变量m1访问到堆中对象

2.2)m1.a和m1.b表示通过引用类型变量访问对象;m1.a表示的语义为:m1所指向对象a

JVM中的方法区、栈、堆概念可参考:https://blog.csdn.net/qq_45138120/article/details/124415275

3、类型画等号 引用类型画等号:指向同一个对象

对其中一个引用的修改会影响另外一个引用

声明两个max类型的对象,存档在堆内存中;两个变量存放在栈内存中;m1所指向对象变量a赋值为5,b为初始值0

基本类型之间画等号:赋值

对其中一个值的修改不会影响另一个值

修改整型变量c的值不会影响变量d的值;将m1所指向的对象a赋值为5,m2所指向的对象b赋值为10,则m1.a=5、m1.b=10,因为m1和m2指向的是同一个对象

代码示例:

//类型画等号
public class ooo {

	public static void main(String[] args) {
		max m1 = new max();
		max m2 = m1; //指向同一个对象
		m1.a = 5; 
		m2.b = 10;
		System.out.println(m1.b); //结果为5,对其中一个的修改会影响另外一个
		
		int c = 2;
		int d = 3; //赋值
		c = 4;
		System.out.println(c); //结果为4,对其中一个的修改不会影响另外一个
	}

}

class max{
	int a;
	int b;
}
四、null和NullPointerException null:空

没有指向任何对象,不能对null做任何操作

NullPointerException:空指针异常

代码示例:

//NullPointerException:空指针异常
public class ooo {

	public static void main(String[] args) {
		max m1 = new max();
		m1 = null; //空,没有指向任何对象
		m1.b = 10; //运行后,会报NullPointerException空指针异常
	}

}

class max{
	int a;
	int b;
}

case

面向过程代码示例:

//面向过程
//面向过程的缺陷:缺乏对数据的封装;数据和方法(操作数据的)的分离
public class Test {
	public static void main(String[] args) {
		String name1 = "zhangsna";
		int age1 = 24;
		double salary1 = 3500;
		print(name1,age1,salary1);

	}
	
	public static void print(String name,int age,double salary) {
		System.out.println("请输入你的姓名"+name);
		System.out.println("请输入你的年龄"+age);
		System.out.println("请输入你的工资"+salary);
	}

}

面向对象代码示例:

//面向对象
public class Test {
	public static void main(String[] args) {
		Emp e = new Emp();
		e.name = "zhangsna";
		e.age = 24;
		e.salary = 3500;
		e.print();

	}
}

class Emp{
	String name;
	int age;
	double salary;
	void print() {
		System.out.println("请输入你的姓名"+name);
		System.out.println("请输入你的年龄"+age);
		System.out.println("请输入你的工资"+salary);
	}
}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/839423.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号