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

2022/07/19 吉软 Java基础(6)

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

2022/07/19 吉软 Java基础(6)

什么时候用构造器(构造方法)赋值: 1. 看创建对象是为了什么?
  • 如果创建对象只是为了调用这个类的方法,建议使用无参构造器
  • 如果创建对象需要使用到对象的某个属性,可以使用有参构造器赋值

大家养成一个习惯!
如果一个类我们手写了构造器,原来的无参构造器失效
我们养成的一个习惯:保证每个类都有无参构造器

    public Person() {
    }

注意:构造器在创建对象时被调用

           构造器(构造方法)也可以被重载!!!

this关键字:
  • this代表的是当前类的对象,this代表的是当前方法的调用者
  • 当使用对象调用属性时,调用的是成员变量
  • this既然是代表方法的调用者,它实际上和对象的作用是一样的。
  • 既可以调属性,也可以调方法
*this调用构造器的要求*

1. 必须在构造器中使用this调用构造器

 2. 必须是第一句话


面向对象之封装:

在现实生活中有很多封装的案例,例如:手机、电脑等等都是属于封装。
对于手机的封装:

        首先是对手机部件的封装,给他们一个坚硬的外壳,保证内部部件的安全;
还有的就是对他们功能的封装,对于手机的某个功能例如计算器,我们并不需要直到这个计算器的计算功能是如何实现的,只需要知道怎么去使用这个计算功能即可。


封装有什么作用
  • 保证内部结构安全
  • 屏蔽复杂,暴露简单(对功能的封装)
在代码中封装的作用

        在一个类体中的数据,假设对代码进行封装后,对于代码的调用者来说是方便的,调用者不需要考虑这个代码的具体实现,只需要有一个简单的操作入口便能使用这个代码的功能(例如:java.util.Arrays这个工具类中有一个sort方法,可以对数组进行排序,这里我们并不需要考虑排序功能是如何实现的,只需要会使用这个sort方法便能使用数组排序的功能);对于类体中安全级别较高的数据,可以使用封装使外部人员不能访问,保证数据安全。

对属性进行封装

将类中的属性私有化(每个属性都使用private修饰)
对外提供简单的操作入口(为每一个属性都定义一对Setter/Getter方法)

public class Test {
	public static void main(String[] args){
		Student stu1 = new Student();
		stu1.setNo(1);
		stu1.setName("张三");
		stu1.setGender('男');
		stu1.setAge(12);

		System.out.println("学号:" + stu1.getNo() + ",姓名:" + stu1.getName() + ",性别:" + stu1.getGender() + ",年龄:" + stu1.getAge());
	}
	
}

class Student {
	private int no;			//学号
	private String name;	//姓名
	private char gender;	//性别
	private int age;		//年龄


	//学号的Setter/Getter方法
	public void setNo(int no) {
		this.no = no;
	}
	public int getNo() {
		return this.no;
	}
	
	//姓名的Setter/Getter方法
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return this.name;
	}

	//性别的Setter/Getter方法
	public void setGender(char gender) {
		this.gender = gender;
	}
	public char getGender () {
		return this.gender;
	}	
	//年龄的Setter/Getter方法
	public void setAge(int age) {
		this.age = age;
	}
	public int getAge() {
		return this.age;
	}
}

	

注:

对于年龄属性的设置可以通过Setter方法设置一个关卡,用于过滤所有年龄不合法的数据。

//年龄的Setter/Getter方法
public void setAge(int age) {
        if(age <= 0 || age >=120) {
                System.out.println(“您的年龄不合法,请重新赋值”);
        }

        else {
        this.age = age;
        }
}

 对员工管理系统进行封装
import java.util.Scanner;
import java.util.Arrays;

public class ManageSystem {
	static int[]  nos = new int[2];				//用于存放员工号
	static String[] names = new String[2];		//用于存放员工姓名
	static int empNo = 1000;					//员工编号
	static int empSum = 0;						//员工人数
	static boolean isContinue = false;			//是否继续

	//删除index索引位置的nos和names的元素
	public static void delete(int index) {
		for(int j=index; j= nos.length) {
								arrayExpansion();
							} 
							
							//赋值并更新
							nos[empSum] = ++empNo;	
							names[empSum++] = name;
						
							System.out.println("你已添加成功!");
							System.out.println("是否继续添加?(true/false):");
							isContinue = sc.nextBoolean();
						}			
						break;
					case 2:{
						//要求根据工号查询 
						boolean isFindAll = false;
						System.out.print("查询所有员工true;查询单个员工false:");
						isFindAll = sc.nextBoolean();
						if(isFindAll) {
							//查询所有员工
							if(names[0] == null) {System.out.println("没有任何员工"); break;}
							for(int i=0; i 

空指针异常:NullPointException

        什么情况下会出现空指针异常?

        由于引用数据类型的默认值(初始值是null,空引用)运行期异常:

3个异常:

1. 数组下标越界

2. 内存溢出(错误)

3. 空指针


知识点:了解

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

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

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