java中封装代码实例,JAVA中封装

求JAVA封装和继承案例?

封装性是整个面向对象的第一大特性,所谓的封装性是指类内部的操作对外部不可见。

我们提供的服务有:网站设计、网站建设、微信公众号开发、网站优化、网站认证、银州ssl等。为成百上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的银州网站制作公司

范例:观察如下的程序问题

class Person { // 类名称的单词首字母必须大写

String name ; // 姓名,是一个字符串所以使用String

int age ; // 年龄是一个整数,所以使用int

public void tell(){ // 定义一个方法

System.out.println("姓名:" + name + ",年龄:" + age) ;

}

}

public class ClassDemo {

public static void main(String args[]){

Person per = new Person() ;

per.name = "张三" ;

per.age = -30 ;

per.tell() ;

}

}

此时的程序从技术(语法)上而言没有任何的问题,但是从实际的生活(业务)上来看,一个人的年龄绝对不可能是-30岁,所以这个时候造成问题的主要原因就是类中的操作对外部可见。

此时,就可以通过封装性来解决此类问题,如果现在要想对类中的属性或方法封装,可以直接使用private关键字完成。

class Person { // 类名称的单词首字母必须大写

private String name ; // 姓名,是一个字符串所以使用String

private int age ; // 年龄是一个整数,所以使用int

public void tell(){ // 定义一个方法

System.out.println("姓名:" + name + ",年龄:" + age) ;

}

}

public class ClassDemo {

public static void main(String args[]){

Person per = new Person() ;

per.name = "张三" ;

per.age = 99999 ;

per.tell() ;

}

}

此时,程序编译之后出现了以下的错误信息:

ClassDemo.java:11: name has private access in Person

per.name = "张三" ;

^

ClassDemo.java:12: age has private access in Person

per.age = 99999 ;

^

2 errors

由于name和age两个属性被private声明了(封装了,私有)所以,现在根本无法被外部所访问,很明显,此时的属性绝对安全,但是封装归封装了,一个问题就出现了,现在的属性无法操作了,无法操作就没有意义了,所以此时,就可以给出一个概念,以后凡是类中的属性在定义的时候必须封装,封装之后的属性一定要通过setter、getter方法设置和取得。Setter和getter方法本身有自己的命名规范。

• 例如:private String name ;

• setter:public void setName(String na)

• getter:public String getName()

class Person { // 类名称的单词首字母必须大写

private String name ; // 姓名,是一个字符串所以使用String

private int age ; // 年龄是一个整数,所以使用int

public void setName(String n){

name = n ;

}

public void setAge(int a){

age = a ;

}

public String getName(){

return name ;

}

public int getAge(){

return age ;

}

public void tell(){ // 定义一个方法

System.out.println("姓名:" + name + ",年龄:" + age) ;

}

}

public class ClassDemo {

public static void main(String args[]){

Person per = new Person() ;

per.setName("张三") ;

per.setAge(99999) ;

per.tell() ;

}

}

此时,虽然是通过setter和getter方法间接的访问了私有属性,但是却没有检验,一旦需要检验,则检验的操作应该放在setter语句之中。

所有的设置应该在setter中完成,而getter方法只是将内容简单的返回即可。

class Person { // 类名称的单词首字母必须大写

private String name ; // 姓名,是一个字符串所以使用String

private int age ; // 年龄是一个整数,所以使用int

public void setName(String n){

name = n ;

}

public void setAge(int a){

if(a0 a200){

age = a ;

}

}

public String getName(){

return name ;

}

public int getAge(){

return age ;

}

public void tell(){ // 定义一个方法

System.out.println("姓名:" + name + ",年龄:" + age) ;

}

}

public class ClassDemo {

public static void main(String args[]){

Person per = new Person() ;

per.setName("张三") ;

per.setAge(99) ;

per.tell() ;

}

}

此时,就通过封装性解决了设置错误内容的问题。

一定要注意的是,封装性出了在属性声明上外,也可以在方法上声明。

private void info(){ // 私有方法

System.out.println("*************************") ;

}

public void tell(){ // 定义一个方法

this.info() ;

System.out.println("姓名:" + name + ",年龄:" + age) ;

}

如果现在调用的是本类中的方法,可以通过“this.方法()”的形式访问。

在JAVA中如何封装代码?

封装在java中有两种表现

1.用类封装一个事物的属性和方法。

2.用方法来封装一个固定的算法。

楼上所说的其实是封装的程度不一样,在面向对象的术语中粒度来表示这个程度。

封装其实是要看情况而定的,如果你这个类是描述人的,需要这个人完成一些基本的动作,如吃饭,走路,那么就不用把细胞也封装进来。但是如果“人”这个类,需要做医学的研究用,那么就需要封装细胞这个属性了。

代码打多了就自然能理解了,不是一个复杂的概念。呵呵。

Java里的封装到底是什么意思,请举例说明?

封装:是指隐藏对象的属性(成员变量)和实现细节(方法),仅对外提供公共访问方式。

好处:

隐藏实现细节,提供公共的访问方式

提高了代码的复用性

提高安全性。

封装原则:

将不需要对外提供的内容都隐藏起来。

把属性隐藏,提供公共方法对其访问。

常见封装 :

成员变量封装---

private 数据类型 xxx ;

private关键字:

是一个权限修饰符。

可以修饰成员(成员变量和成员方法)

被private修饰的成员只在本类中才能访问。

例如:

class show(){

private String name;//其他类无法访问当前私有成员

public String getName(){//可以通过public修饰的方法访问name

return this.name;

}

}

谁能用段代码给我解释下java的封装啊?

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方法,这就是封装的一点,还有的其他朋友也说到了

*/

在java中什么是封装,举一个例子说明一下

private String sex; //性别 private int age; //年龄 private String job; //工作 //以后只要是设置值的时候 实例化这个类 //比如设置年龄 那么调用setAge(String age);方法 //传入年龄值 注意前面是什麽类型 这里为int //TestBean test=new TestBean(); //String name="张三"; //test.setName(name); //设置值后 很复杂的多个属性 便变成了一个简单的JavaBean对象 //取值也很简单 前提是你已经设置了多项属性的值 //比如调用年龄 getAge()就可以拿到年龄的值 //对应其类型 可以这样调用 //TestBean test=new TestBean(); //String name=test.getName(); //使用JavaBean的好处有 实现MVC结构 //封装多个属性或对象为一个对象 私有的属性 而共有的方法 大大提高程序安全性 //。。。等等

java 封装

public class Student2 {

private String name;

private String age;

private String sex;

private String major;

public Student2(String name, String age) {

super();

this.name = name;

this.age = age;

this.sex = "男";

this.major = "JAVA";

}

public Student2(String name, String age, String sex, String major) {

super();

this.name = name;

this.age = age;

this.sex = sex;

this.major = major;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getAge() {

return age;

}

public void setAge(String age) {

this.age = age;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public String getMajor() {

return major;

}

public void setMajor(String major) {

this.major = major;

}

public String take() {

return "大家好,我叫" + name + ",今年" + age + "岁,性别" + sex + ",专业是" + major;

}

}

student2类

public class Student {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Student2 s1 = new Student2("张三", "18");

Student2 s2 = new Student2("李四", "15", "女", "C++");

System.out.println(s1.take());

System.out.println(s2.take());

}

}

测试方法

结果:

大家好,我叫张三,今年18岁,性别男,专业是JAVA

大家好,我叫李四,今年15岁,性别女,专业是C++

你是要这个东西么


标题名称:java中封装代码实例,JAVA中封装
URL标题:http://myzitong.com/article/hopddd.html