Java封装

一.封装类及其使用

1.1 概念

  1. 将方法(函数指针)和字段(普通变量)包装到一个单元(类似结构体)中,单元以类的形式实现
  2. 信息隐藏,隐藏对象的实现细节,不让外部直接访问到
  3. 将数据和方法包装进类中,再加上具体实现的隐藏(访问修饰符),共同被称作封装,结果是一个同时带有特征和行为的数据类型
  4. 定义类,定义其属性和方法的过程,称之为封装类。

1.2 实例

class Student{//封装一个类
	
	int age;
	String name;
	double score;
	
	void introduce(){
		
		System.out.println("name="+name+" age="+age+" score="+score);
		
	}
	
	void testFunc(){
		
		System.out.println("testFunc");
		
	}
	
}



public class test {
	
		public static void main(String[] args){//函数入口
			
			Student stu1 = new Student();//类的实例化
			
			stu1.age = 18;
			stu1.name = "zengtiejiang";
			stu1.score = 999;
			stu1.introduce();
			stu1.testFunc();
			
			
		}
	
}

二.访问修饰符

2.1 概念

  1. 信息隐藏,是OOP最重要的功能之一,也是使用访问修饰符的的原因
  2. 信息隐藏的原因:
1.对模块的任何实现细节,不会影响使用该模块的代码
2.防止用户意外修改数据
3.使模块易于维护和使用(就是电脑配件)
  1. 访问修饰符:private,protected,public,默认
  2. public:该类或非该类均可访问
  3. private:只有该类可以访问
  4. protected:该类及其子类成员可以访问,同一个包中的类也可以访问
  5. 默认:同一个包中的类可以访问

2.2访问修饰符封装属性及方法

  1. 用private修饰类及其属性和方法,不允许其他类直接调用,内部public一个方法,以供调用。

三.构造方法

3.1UML类图

  1. 同一建模语言或标准建模语言
  2. 类的命名应尽量使用领域中的术语
  3. 应明确,无歧义,以便于以利于相互交流和理解
  4. 类的属性,操作中的可见性使用:+,#,-,分别表示public,protected,private

3.2概念和作用

  1. 构造方法负责对象初始化,为对象的属性赋合适的初始值
  2. 创建对象时,其类的构造方法确保在操作对象前,系统保证初始化进行

3.3语法规则

  1. 构造方法名与其类名一致
  2. 没有返回类型
  3. 方式实现主要为字段赋初值

3.4调用

  1. 构造方法的调用方法很特别,new操作符(实例化对象的时候,自动被调用)
  2. Java系统保证每个类都有构造方法
  3. 一个类可以含有多个构造方法,名字一致

四.this关键字

  1. 在类的方法中,this表示,调用此方法对象的引用
  2. 看作一个变量,它的值是当前对象的引用
  3. 处理方法中成员变量和形参同名的问题
  4. 当在方法内,需要用到调用该方法的对象时,可使用this
  5. 在类的构造方法中,调用this(参数)来调用该类的指定构造方法
  • 总结理解:
    1. 可以调用当前所在类中的所有成员,
    2. 可以区分成员和形参。
    3. 可以类的构造方法内,再一次指定构造方法(必须在第一行指定),套娃。。。。。
class Student{//封装一个类
	
	private	int age;
	String name;
	double score;
	
	private	void introduce(){
		
		System.out.println("name="+name+" age="+age+" score="+score);
		
	}
	
	private void testFunc(){
		
		System.out.println("testFunc");
		
	}
	
	public Student(int age,String name,double score){
		
			this.age = age;
			this.name = name;
			this.score = score;
			this.introduce();
			this.testFunc();
			System.out.println("first");
			
	}
	
	public Student(){
		
	  this(64454,"asda",95.5);
	  System.out.println("second");
		
	} 
	
	public Student(int age){
		
		  this();
		  System.out.println("third");
	}	 
	
}


public class test {
	
		public static void main(String[] args){//函数入口
			
			Student stu1 = new Student(18);//类的实例化
			System.out.println("stu.name = "+stu1.name);
		
			
			System.out.println("this.stu1.name = "+stu1.name);
			
		}
		
	
	
}
name=asda age=64454 score=95.5
testFunc
first
second
third
stu.name = asda
this.stu1.name = asda

五.static关键字

5.1特点

  1. 用来修饰成员,修饰成员变量的称之为类变量(静态变量)
  2. 修饰成员方法,称之为类方法(静态方法)
  3. 类加载的时候,就会被加载,优于对象
  4. 用来修饰语句块,称之为静态代码块,构造方法之前执行,只执行一次,用来对静态成员做初始化
  5. 调用的时候,可以直接通过类名.成员访问

5.2注意

  1. 静态方法只能访问外部静态成员
  2. 静态方法中不能出现this关键字

六.方法重载

  1. 指方法名相同,参数列表不同的方法可同时存在,代表相似的行为或功能
  2. 大多数语言中不可用,Java中可用
  3. 重载概念:同一个类中。同名不同参的方法,称之为重载方法,注意:仅返回值不同,不能称之为重载。
  4. 例如:System.out.println()就是方法重载,可支持输出多种格式参数。

七.包(package)

7.1打包的意义

  1. 标准的Java库,是由一系列包组成的,包括Java.lang,Java.util,java.net等等
  2. 标准java包就是层次性包结构,就如同硬盘上嵌套的子目录一样,我们可以使用嵌套层次结构来组织包
  3. Java包是为了更好的组织规划代码,防止命名冲突和混乱,所以Java就出现了打包机制
  4. 当把类组织起来,放进一个包内时,也就给包中的成员赋予了相互访问的权限,就拥有了包内的程序代码
  5. 包访问权限,把类聚集在一个包之内,为这一做法提供了意义和理由

7.2包的命名

  1. 为保证Java包的唯一性,定义的包最好加上唯一的前缀
  2. 由于互联网的域名不会重复,推荐域名倒置作为唯一前缀

7.3 包的使用和权限

  1. 一个类可以使用包中的所有类
  2. 一个类可以使用其它包中的公开类
  • 怎么使用其他包中的公开类
    1. 每个类签名上,加上完整包名
    2. import语句导入(eclipse:control+shift+o)
    3. import+特定类:在源代码文件顶部文件

7.4 包的创建

  1. 调用不同包的两个同名包,会优先调用同一个包内的(除非使用包类的时候,直接加上完整包名),所以最好不要同名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

elaot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值