面向对象———封装,包,访问修饰符,static关键字

一、封装概念

封装实质就是将类的状态信息隐藏在类内部,不允许外部程序直接访问,而是通过该类的方法来实现对隐藏信息的操作和访问。

理解:封装就是将类内部的属性私有化,不允许外部直接访问,然后通过对应的get,set方法来实现对隐藏信息的操作!

封装好处:隐藏类的实现细节,限制不合理操作!

2.实现封装的步骤:

  • 修改属性的可见性
  • 设置get set方法
  • 设置属性的存取限制

代码如下:

//人类
public class Person {
	public String name;			//姓名
	public int age;				//年龄
	public String gender;		//性别
	
	//封装属性
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		if(age<0||age>150) {
			System.out.println("****输入的年龄为:"+age+",该年龄不合法,将重置....");
			return;
		}
		this.age = age;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		if(gender.equals("男")||gender.equals("女")) {			//判断是否输入的男或者女
			this.gender=gender;
		}else {
			System.out.println("*****性别不合法*****");
		}
	}
	
	//构造方法
	public Person() {
		this.name="无名氏";
		this.age=18;
		this.gender="男";
	}
	//有参构造
	public Person(String name,int age, String gender) {
		this.name=name;
		this.age=age;
		this.gender=gender;
	}
	
	//自我介绍方法
	public void say() {
		System.out.println("自我介绍一下:");
		System.out.println("姓名:"+this.name);
		System.out.println("性别:"+this.gender);
		System.out.println("年龄:"+this.age);
	} 
	
}

//测试类
 public class Test {
	 public static void main(String[] args) {
		Person person=new Person();			//实例化对象
		person.setAge(220);					//给年龄赋值
		person.setGender("中性");			//给性别赋值 
		person.setName("刘明");				//给姓名赋值
		person.say();						//调用方法,输出
	}
 }

输出结果:

二、包

1.使用包的步骤

  • 新建包
  • 将定义好的包分别放入不同的类中
  • 导入包

2.包的作用:

  • 便于管理

  • 防止命名冲突(主要是类名)

  • 限制访问权限

3.包的定义

  • package是声明包的关键字
  • 包的声明必须是java源文件中的第一条非注释性语句,而且一个源文件只能有一个声明包的语句
  • 包的使用规范:包名前缀小写,不能以圆点开头或者结尾,不能包含除   " . "  外的其他特殊符号!

三、类和类的访问修饰符

1.类的访问修饰符

java中类的访问修饰符

修饰符

同一个包中

非同一包中

public

可以使用

可以使用

默认修饰符

可以使用

不可以使用

2.类成员的访问修饰符

Java类成员的访问修饰符

修饰符

同一类中

同一包中

子类中

其他地方

private

可以使用

不可以使用

不可以使用

不可以使用

默认修饰符

可以使用

可以使用

不可以使用

不可以使用

protected

可以使用

可以使用

可以使用

不可以使用

public

可以使用

可以使用

可以使用

可以使用

四、static关键字

1.用static关键字修饰属性

static修饰的属性称为静态变量或者类变量,没有使用static修饰的属性叫做实例变量

2.用static关键字修饰方法

用static修饰的方法叫做静态方法,没有使用static修饰的方法叫做实例方法。

注意:

  • 静态方法/属性,不属于具体的对象,被调用时可以直接  类名.属性/方法名  调用。

  • 在静态方法/变量中不能直接访问非静态(实例)方法/变量

  • 在实例方法/变量中可以直接调用类中定义的静态方法/变量

猜你喜欢

转载自blog.csdn.net/JAVA52Lin/article/details/82887852