Java 封装

一、封装的概述

封装是面向对象的核心思想,将对象的属性和行为封装起来,不需要让外界知道具体实现细节,这就是封装思想

二、封装的实现

1.封装是指在定义一个类时,将类中的属性私有化,即使用private关键字来修饰

2.私有属性只能在它所在类中被访问,如果外界想要访问私有属性,需要提供一些使用public修饰的公有方法。

例如:用于获取属性值的getXxx方法;

设置属性值的setXxx方法。

举例:封装一个Student类的对象,其中定义一个表示学生的类student,含"学号"、"班级"、"性别‘’、“”年龄域",以及"获得学号"、"获得性别"、"获得姓名"、"获得年龄"、"修改年龄"方法另加一个方法public String toString(),把Student类对象的所有属性信息组合成一个字符串,并有检验功能的程序实现。

代码实现:

package studenttest;

class Student
{
private int number;//定义学号
private String name;//定义姓名
private String sex;//定义性别
private int age;//定义年龄
public Student(int number,String name,String sex,int age)
{//构造方法,设定变量
this.number=number;
this.name=name;
this.sex=sex;
this.age=age;
}
public int getnumber()
{//返回学号
	return number;
}
public String getname()
{//返回姓名
	return name;
}
public String getsex()
{//返回性别
	return sex;
}
public int getage()
{//获得年龄
	return age;
}
public void reviseage(int age)
{//修改年龄
	this.age=age;
}
}
public class StudentTest
{
public static void main(String[] args)
{//输出信息
	Student stu=new Student(1,"张三","男",10);
	System.out.println("学号:"+stu.getnumber()+"-"+"姓名:"+stu.getname()+"-"+"性别:"+stu.getsex()+"-"+"年龄:"+stu.getage());
	stu.reviseage(12);
	System.out.println("学号:"+stu.getnumber()+"-"+"姓名:"+stu.getname()+"-"+"性别:"+stu.getsex()+"-"+"年龄:"+stu.getage());
}
}
package studenttest;

class Student
{
private int number;//定义学号
private String name;//定义姓名
private String sex;//定义性别
private int age;//定义年龄
public Student(int number,String name,String sex,int age)
{//构造方法,设置变量
this.number=number;
this.name=name;
this.sex=sex;
this.age=age;
}
public String toString()
{//返回学号、姓名、性别、年龄
	return "学号:"+number+"姓名:"+name+"性别:"+sex+"年龄:"+age;
}
public void reviseage(int age)
{//修改年龄
	this.age=age;
}
}
public class StudentTest
{
public static void main(String[] args)
{//输出结果
	Student stu=new Student(1,"张三","男",10);
	System.out.println(stu.toString());
	stu.reviseage(12);
	System.out.println(stu.toString());
}
}
package studenttest;

class Student
{
 int number;//定义学号
 int class;//定义班级
 String name;//定义姓名
 String sex;//定义性别
 int age;//定义年龄
public Student(int number,String name,String sex,int age)
{
this.number=number;
this.class=class;
this.name=name;
this.sex=sex;
this.age=age;
}
public Student()
{
this.number=1001;
this.class=1;
this.sex='F';
this.age=18;
this.name="TZSD";
}
public int getNumber()
{
	return number;
}
public String getName()
{
	return name;
}
public String getSex()
{
	return sex;
}
public int getAge()
{
	return age;
}
public void setAge(int age)
{
	this.age=age;
}
public String toString()
{//返回学号、姓名、性别、年龄
	return this.name+" "+this.sex+" "+this.age+" "+this.number;
}
}
public class StudentTest
{
public static void main(String[] args)
{//输出结果
	Student stu=new Student();
    Student stu1=new Student(1005,2,'M',20);
	System.out.println(stu.toString());
    String str=stu1.toString();
	System.out.println(str);
}
}

三、包

1.包是用来管理类文件的,在本质上与文件夹类似。

2.不同功能的类放在不同的包中。

3.包将类封装到了不同目录中。

4.同一个包中的类,可以直接用类名访问。

5.不同包中的类

(1)不同包中的类,可以使用包名.类名的形式来访问。

(2)不同包中的类,还可以用关键字import导入所在的包,这样就可以直接用类名访问。

6.常用的包

(1)Java.lang        包含java语言的核心类

(2)Java.awt         包含抽象窗口工具集

(3)Java.swing      包含用于管理可视化组件的类

(4)Java.net          包含与网络操作相关的类

(5)Java.io            包含提供多种输入、输出的类

(6)Java.util           包含一些使用工具类,如集合类等

四、访问权限控制

Java中,针对类、成员方法和属性提供了4种访问级别(private->default->protected->public)。

1.Private(类访问级别):表示私有的,被private修饰的成员,仅能包含该类的其他成员访问,任何其他类都不能访问,即private成员只能在类的内部使用。

2.Default(包访问级别):如果一个类或类的成员不使用任何访问控制修饰符,则称它为默认访问控制级别,这个类或类的成员只能被本包中的其他类访问。

3.Protected((子类访问级别):被protected修饰的类的成员,既可以被同一个包中其他类访问,也可以被不同包中的子类访问。protected比默认访问权限的访问范围要宽。

(protected=默认权限+不同包中的子类)

4.public(公共访问级别):是最宽松的访问级别权限,如果一个类或者类的成员被public访问控制符修饰,那么这个类或者类的成员能被所有的类访问,不管访问类和被访问类是否在同一个包中。

访问权限的设定(*表示可访问)
访问级别同一个类同一个包不同包的子类不同包非子类
private*
default**
protected***
public****

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值