谁能用段代码给我解释下java的封装啊?
如题。希望能用代码解释下他的作用及其用法,谢谢是不是写个类,然后用其他类调用就是封装呢?public和private来封装都一样吗?...
如题。 希望能用代码解释下他的作用及其用法, 谢谢
是不是写个类, 然后用其他类调用就是封装呢? public和private来封装都一样吗? 展开
是不是写个类, 然后用其他类调用就是封装呢? public和private来封装都一样吗? 展开
5个回答
展开全部
public class Man {
//这里是对属性的封装,一个人的姓名,年龄,妻子都是这个对象(人)的私有属性
private String name;
private int age;
private Woman wife;
//这里是对改人对外界提供方法的封装,可以设置改男人的妻子,姓名,年龄也可以获取改男人的姓名和年龄
public void setWife(Woman wife) {
this.wife = wife;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Woman {
//同样这里是属性封装
private String name;
private int age;
private Man husband;
//方法封装
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Man getHusband() {
return husband;
}
public void setHusband(Man husband) {
this.husband = husband;
}
}
/**
* 仔细看就会发现,Man类没有提供getWife的方法,这是以为男人不想让自己的妻子被外界访问,
*
* 直接下来呢,就是封装可以吧一个对象的属性私有,而提供一些可以被外界访问的属性的方法,
*
* 比如说,name属性,Man和Woman类都有相应的get和set方法,外界都可以通过这些方法访问和修改
*
* 同时对一些改对象不想让外界访问的属性,就不提供其方法,比如说Man的wife属性,就没有get方法
*
* 外界是不能带到Man类的wife属性的
*
* 呵呵
* 奇怪的是Woman类有husband的get方法,这就是封装的一点,还有的其他朋友也说到了
*/
//这里是对属性的封装,一个人的姓名,年龄,妻子都是这个对象(人)的私有属性
private String name;
private int age;
private Woman wife;
//这里是对改人对外界提供方法的封装,可以设置改男人的妻子,姓名,年龄也可以获取改男人的姓名和年龄
public void setWife(Woman wife) {
this.wife = wife;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Woman {
//同样这里是属性封装
private String name;
private int age;
private Man husband;
//方法封装
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Man getHusband() {
return husband;
}
public void setHusband(Man husband) {
this.husband = husband;
}
}
/**
* 仔细看就会发现,Man类没有提供getWife的方法,这是以为男人不想让自己的妻子被外界访问,
*
* 直接下来呢,就是封装可以吧一个对象的属性私有,而提供一些可以被外界访问的属性的方法,
*
* 比如说,name属性,Man和Woman类都有相应的get和set方法,外界都可以通过这些方法访问和修改
*
* 同时对一些改对象不想让外界访问的属性,就不提供其方法,比如说Man的wife属性,就没有get方法
*
* 外界是不能带到Man类的wife属性的
*
* 呵呵
* 奇怪的是Woman类有husband的get方法,这就是封装的一点,还有的其他朋友也说到了
*/
展开全部
public class Show{
public static void show(String str){
System.out.println(str);
}
}
上面 就是一个 对 System.out.println();的封装。
调用的时候 :
public class Use{
public static void main(String[] args){
Show.show("封装");
}
}
使用的时候就不用使:System.out.println("封装");
如果有 好多句 就省去了好多 System.out.println();
个人理解 这只是个简单的例子,封装可以节省好多代码 。
那位朋友说的对,我没表达好 。
private 在其他类调用他的时候是 不能调用的,一般变量 设置为private
共外部类 使用的方法 都设置为 public .
public static void show(String str){
System.out.println(str);
}
}
上面 就是一个 对 System.out.println();的封装。
调用的时候 :
public class Use{
public static void main(String[] args){
Show.show("封装");
}
}
使用的时候就不用使:System.out.println("封装");
如果有 好多句 就省去了好多 System.out.println();
个人理解 这只是个简单的例子,封装可以节省好多代码 。
那位朋友说的对,我没表达好 。
private 在其他类调用他的时候是 不能调用的,一般变量 设置为private
共外部类 使用的方法 都设置为 public .
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
封装: 封装是把过程呾数据包围起来,对数据的讵问叧能通过已定丿的界面。面向对象计算始二返个基本概忛,即现实丐界可以被描绘成一系列完全自治、封装的对象,返些对象通过一个叐保护的接口讵问其他对象。
看下java 底层代码如Integer 在JBuilder2005中在封装类如Integer上按住ctrl就可以看到sun提供的很多封装类列子
Class test
{
public static void main(String args[])
{
int sum=0;
for(int i=0;i<args.length;i++)
{
sum+=Integer.parseInt(args[i]);
}
System.out.println(sum);
}
}
很明显Integer类中的parseInt()方法将args[]中的字符转换成了数字。这就是典型的封装列子
看下java 底层代码如Integer 在JBuilder2005中在封装类如Integer上按住ctrl就可以看到sun提供的很多封装类列子
Class test
{
public static void main(String args[])
{
int sum=0;
for(int i=0;i<args.length;i++)
{
sum+=Integer.parseInt(args[i]);
}
System.out.println(sum);
}
}
很明显Integer类中的parseInt()方法将args[]中的字符转换成了数字。这就是典型的封装列子
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么是封装呢?封装就是把能实现某个功能的一些代码放到一个方法里面。
当其他程序要实现这个功能的时候就可以直接调用它,而不用管它具体是怎样实现的。
比如写一个方法,实现把输入的字母都变成大写这个功能:
public String toUpperCase(String s){
return s.toUpperCase();
}
当其他程序想要实现这个功能时就可以直接调用toUpperCase方法。
这种能实现某个功能的一些代码放到一个方法里面的做法就是封装
当其他程序要实现这个功能的时候就可以直接调用它,而不用管它具体是怎样实现的。
比如写一个方法,实现把输入的字母都变成大写这个功能:
public String toUpperCase(String s){
return s.toUpperCase();
}
当其他程序想要实现这个功能时就可以直接调用toUpperCase方法。
这种能实现某个功能的一些代码放到一个方法里面的做法就是封装
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你理解的太片面。
一个简单的例子
有一段代码,3个程序要用它,如果你不封装,哪么你就得在这3个程序里都要写,太浪费了。
一个简单的例子
有一段代码,3个程序要用它,如果你不封装,哪么你就得在这3个程序里都要写,太浪费了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |