7.访问限定符和访问器方法

1.四大访问限定符

  • private 私有的
  • public 公有的
  • protected 保护的
  • package 当前包(相当于不同的文件夹,同名的类能放在不同的包里),包名一般都是小写的反域名
    1)ctrl shift o 合理的调整包(需要的包帮助导入,不需要的帮助移除)
    2)如果多个类位于同一个包,可以对导包进行简写 import com.baidu.www.*;
    3)*一般在超过三个类以上的时候才建议使用,否则性能低

都可以用来修饰属性和方法,其中只有public和package可以修饰类,其他的都不行

private:(私有,范围为本类)

  • 可以修饰方法和属性,不能修饰类
    除了在当前类里面,其他任何位置都无法访问被private所修饰的属性,也无法调用被private修饰的方法
  • 私有属性和私有方法

protected:(受保护的,范围为本包)

  • 可以修饰方法和属性,不能修饰类
    在当前类以及同一个包下面的其他类中可以访问,在不同包下的其他类中无法访问
  • 受保护的属性和受保护的方法

public:(公有的,范围为所有)

  • 可以修饰方法和属性和类
    在任何地方都可以访问
  • 公有的属性和公有的方法

package:(默认的,范围为本包)

  • 可以修饰方法和属性和类
    效果和protected完全一致
  • 不写修饰符代表的就是package,又称"default"

在这里插入图片描述

在这里插入图片描述

2.访问限定符的规范

一般情况下,

  • 所有的属性都必须设置为private
  • 所有的方法都必须设置为public,构造方法也不例外

3.访问器方法:(通过对象.setXXX()或对象.getXXX()调用)

基于访问限定符的规范:属性基本都是private的
访问器方法是专门针对属性赋值和获取值设计的一套方法,包含两个:
一个用来设置值:

pubic void setXXX(Type XXX){
		  this.xxx = XXX;
}


private String name;//例子
public void setName(String name){
		this.name = name;
}

一个用来获取值:

public Type getXXX(){
			return this.XXX;
}

//例如
public String getName(){
		return this.name;
}

注意:
有访问器的时候一般手写当前类的无参构造

使用快捷键生成访问器方法:
ALT+S ----->generate Getter and Setter methods---->select all------>generate
使用快捷键生成的访问器方法中,如果属性是布尔类型,无法生成getter方法,生成的是isXXX不是getXXX

空指针异常:(无法解决)
使用null调用方法或者使用null.属性的方式访问属性
避免方案:使用if判断当前是否是null,如果是就什么都不做.否则调用方法

package com.tencent.www;

import com.baidu.www.Course;

public class CourseTest04 {
	public static void main(String[] args) {
		Course[] courses = new Course[5];
		Course c1 = new Course();
		c1.setNumber(1);
		c1.setName("语文");
		c1.setScore(76.95);
		c1.setTeacherName("孔子");

		Course c2 = new Course();
		c2.setNumber(2);
		c2.setName("数学");
		c2.setScore(99.05);
		c2.setTeacherName("米开朗琪罗");

		courses[0] = c1;
		courses[1] = c2;
		showInfoSuper(courses);
	}

	static void showInfoSuper(Course[] courses) {
		for (Course course : courses) {
			// 使用if判断
			if (course == null) {
				System.out.print("为了避免空指针的判断   ");
			} else {
				System.out.print(course.getName() + "     ");
			}
		}
	}

}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值