java面向对象基础 封装性

对于刚学习java的人来说可能不知道 封装性的好处,感觉麻烦,封装有很多好处。最主要的目的就是 保护内容。保证某些属性或者方法不被外部看见。

类的封装性即不能让外面的类随意修改一个类的成员变量;

在定义一个类的成员(包括变量和方法),使用private关键字说明这个成员的访问权限,只能被这个类的其他成员方法调用,而不能被其他的类中的方法所调用;

为实现封装性,常将类的成员变量声明为private,再通过public的方法来对这个变量进行访问。对一个变量的操作,一般都有 读取和赋值操作,我们一般定义两个方法来实现这两种操作,即:getXxx()与setXxx();

一个类就是一个模块,我们应该让模块仅仅公开必须要让外界知道的内容,而隐藏其他的一切内容。再进行程序设计时,应尽量避免一个模块直接修改或操作另一个模块的数据,模块设计追求强内聚(许多功能尽量在类的内部独立完成,不让外面干预),弱耦合(提供给外部尽量少的方法调用)。

举个例子:

class Person{
   private	String name;//设置姓名属性
   private	int age;//设置年龄属性

   public  void setName(String name){//设置姓名
       this.name=name;
   }
   public String getName(){//取得姓名
     return name;
   }
    public  void setAge(int age){//设置年龄
		if(age>=0){
      this.age=age;
	}else{
	   this.age=0;
	}
   }
   public int getAge(){//取得年龄
       return age;
   }
	public void tell(){
		System.out.println("姓名:"+getName()+",年龄:"+getAge());
	}
};
public class fengzhuang{
   public static void main(String args[])
   {
           Person per = new Person();//声明并实例化对象
		   per.setName("张三");//赋值
		   per.setAge(30);//赋值
		   per.tell();

		   Person per2= new Person();//声明并实例化对象
		   per2.setName("李四");//赋值
		   per2.setAge(-30);//赋值
		   per2.tell();
   }
};

定义一个Person类,若想给类中的属性赋值,则必须通过setName()和getName()方法来给类中的属性赋值。

时间: 2024-10-11 13:49:55

java面向对象基础 封装性的相关文章

【Java面向对象基础(三)】面向对象思想

[喵"的Android之路][基础篇(三)][Java面向对象基础]面向对象思想 1 面向对象的WWH 1.1 What--什么是面向对象 首先,要理解“对象”.在Thinking in Java中提到“Everything is an object”,即万物皆对象.这里的“对象”指的是任何实体或者任何可以当作实体看待的“虚幻的事物”.比如现实中的人(男人.女人.老人.小孩而...).动物(大象.狮子.猴子...).桌子.凳子.汽车.ATM机等等,也可以使看不见摸不着的空气(氧气.二氧化碳.氮气

面向对象的封装性和多态性

面向对象之封装性: 1.继承要符合is-a的关系.即"子类is a 父类"——子类是父类.如:卡车是汽车,卡车is a 汽车. 2.父类中如果用Protected修饰符,表示只允许其子类访问,而不允许其他非子类访问: 父类中如果用private修饰符,子类是不能访问的. 3.除了构造方法不能被子类继承外,其他都可以直接被继承.可以用base关键字调用父类的构造函数:语法如下 :base(参数变量名) 使用base还可以调用父类的属性和方法. 注意:子类构造函数中已经定义了这些参数,在b

【Java面向对象基础(一)】数据类型与运算符

[喵"的Android之路][基础篇(一)][Java面向对象基础]数据类型与运算符 1.数据类型介绍 在Java中,数据类型分为两种:基本数据类型和引用类型. 基本数据类型共8种,见下表: 基本数据类型 字节数 二进制位数 最小值 最大值 默认值 byte 1 8-bit -2^7 +2^7 - 1 0 short 2 16-bit -2^15 +2^15 - 1 0 int 4 32-bit -2^31 +2^31 - 1 0 long 8 64-bit -2^63 +2^63 - 1 0

【Java面向对象基础(二)】细说String、StringBuffer和StringBuilder

[喵"的Android之路][基础篇(二)][Java面向对象基础]细说String.StringBuffer和StringBuilder 1.String String是Java中的一个final类,主要用于字符串的处理. 1.1 不可变性 String内的字符串是不可变的,每一次修改都会重新生成一个新的String对象实例. 例: 1 // 在堆中会创建一个"Hello"字符串实例,把地址赋给对象a 2 String a = new String("Hello&

PYDay14:反射、面向对象基础-封装、集成、多态

1.反射 通过字符串的形式,导入模块再通过字符串的形式,去模块中寻找指定的函数并执行eg:__import__(模块) 更加字符串的形式去对象(某个模块)中操作其成员 常用方法: getattr() hasattr() setattr() delattr() 扩展: r = __import__('www.iclinux.com',fromlist=True) 反射示例: 使用反射,无需依照函数的数量来写判断了 2.面向对象基础: C# Java 只能使用面向对象编程 Pyhon Ruby:即可

关于JAVA面向对象基础整理以及个人的理解(适合初学者阅读)

JAVA的基础语法等都跟C有很大的相似之处,所以这里就不多啰嗦了.直接从数组开始. 数组: 1.声明 int [] a; 在声明的过程中,并没有分配空间给数组.我们可以在声明的同时,用new来分配相应的空间 int [] a = new int[100]; 这里开辟了一个空间为100大小的数组,内存分配也完成了. 我们可以在声明的同时也确定元素个数 int [] a = new int[]{1,3,5,7,9}; 面向对象(重点) class Human{ int height; void br

Java面向对象的封装

封装是Java面向对象的三大特性之一,通常我们是通过包管理机制同时对类进行封装,隐藏其内部实现细节,通常开发中不允许直接操作类中的成员属性,所以属性一般设置为私有权限private,类中一般会给出一些公共方法来让使用者通过特定方法读取或者操作里面的数据,避免误操作从而保证了数据的安全. 封装步骤一般分为3步,第一步首先修改属性的可见性,即将其设置为private:第二步创建getter/setter方法,用于获取/设置属性值,就是用来读写属性,eclipse中也提供了直接生成变量操作方法的菜单,

JAVASE(七)面向对象:封装性(特性之一)、构造器、属性、关键字

一.封装性 1.为什么要使用封装性? 创建对象以后,可以通过对象.属性名的方法进行赋值.只能限制数据的类型,和数值的范围.但是往往我们需要更多的其它条件的限制.在属性的声明处无法限制.所以我们采用如下的方式. 使用权限修饰符对属性进行修饰,在其它的类中就无法直接对属性进行调用和赋值. 提供公共的方法,通过方法给属性进行赋值,或者通过方法获取值.在方法的内部我们可以对属性的赋值的进行条件的限制. 2.封装性思想具体的代码体现: 封装性的体现(狭义上) 1.私有化属性 2.提供公共的set/get方

Java面向对象之封装 入门实例(一)

一.基础概念 (一)面向对象的三大特征:      1.封装         2.继承          3.多态 (二)封装:隐藏实现细节,对外提供公共的访问方式(接口). 封装的体现之一:将属性都私有化,对外提供对应的  setXXX    getXXX  方法来访问. 封装的好处: 1.提高安全性.不允许直接访问细节.并通过公共的方式来访问,实现可控. 2.提高了易用性. 3.提高了复用性. 4.隔离的变化.后期应用于分层设计. 二.实例代码 要求用私有化进行封装将Person的年龄打印出