`
incyanggan
  • 浏览: 32738 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Java菜鸟学习笔记--面向对象篇(二):封装与访问修饰符

 
阅读更多

什么是封装?为什么要用 封装?


封装是什么
    • 隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。
封装途径
    • 封装就是将抽象得到的数据和行为(或功能)相结合,形成有机整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”。
    • 其中数据和函数都是类的成员。
封装的目的
    • 增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。
封装的原则
  • 把尽可能多的东西藏起来.对外提供简捷的接口。
  • 把所有的属性藏起来。



JAVA的访问修饰符


    • Java有public、protect、friendly、private四种访问权限,并且这四访问权限的访问范围越来越小。


默认不加任何修饰符情况







在同文件内,默认不加修饰符情形

class Person//默认为 private
{
	//1.测试默认的包访问权限,全部不加访问修饰符
	String name;
	int age;
        int number;
	int stucode;

	void set(int a,int b,int c)
	{
		age=a;
		number=b;
		stucode=c;
	}
	void say()
	{
		System.out.printf("age=%d,number=%d,stucode=%d",age,number,stucode);
		System.out.println();
	}
	
}

public class PersonTest
{
	public static void main(String[] agrs)
	{
		Person a=new Person();
		a.set(10,20,30);//直接访问
		a.age=100;//默认情况下可以直接访问修改数据
		a.say();
	}
}

在同目录下,不命名包。都用默认修饰符,不同文件能否相互访问类方法?

//文件PersonTest.java 未指定package name,和Say.java在同个目录下,测试在这里能否直接调用Say.java中类Say中的方法?
public class PersonTest
{
	public static void main(String[] agrs)
	{
		Say one=new Say();
		one.setab(5,100);
		one.sayab();
	}
}

//文件Say.java 未指定package name,但是和PersonTest.java在同一目录下,测试在PersonTest.java中能否直接调用这些方法?
class Say
{
	int a;
	int b;	
	void setab(int x,int y)
	{
		a=x;
		b=y;
		System.out.println("调用成功");
	}
	void sayab()
	{
		System.out.println(a);
		System.out.println(b);
	}

}



public修饰符

简述:开放的权限最大,可以被任何class调用

package me.lady;

public class Lady{
	
	public void say(){
		
		System.out.println("O~my Cowboy");
	
	}
	
}

//Public 挎包访问测试
//这个叫牛仔包,牛郎包或者牛肉包都行,反正都制定包名了
package me.cowboy;
//导入lady
import me.lady.*;

public class Cowboy{
	
	public void love(){
		
		Lady mimi=new Lady();
		
		System.out.println("O~Lady");
		
		mimi.say();
	}
	public static void main(String[] args){
		
		Cowboy coco=new Cowboy();
		coco.love();
		/*输出:
		yg@Gander:~/Desktop/code$ java me.cowboy.Cowboy 
		O~Lady
		O~my Cowboy		
		*///可以挎包访问亲~
		
		
	}
}












作者:YangGan
出处:http://blog.csdn.net/incyanggan
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics