java学习(八)面向对象特征之封装和调用
封装:是面向对象的三大特征之一,作用有两个
-
保证内部结构安全
-
屏蔽复杂,暴露简单
封装从代码级别来看有啥用?
-
对于代码调用的人来说,不需要关心代码的复杂实现,只需要通过简单的入口就可以访问了
-
在类体里的重要数据可以封装起来,让外部人员不能随意访问,保证数据安全性
复习一下方法的定义
【修饰符列表】返回值类型 方法名(参数列表){}
修饰符列表一般为public static,但是也有不带static的实例方法(对象方法)
有static的方法和没有static的方法怎么调用?
-
有static的方法是静态方法,使用类名.方法名();调用即可, 如果在当前类中,类名也可以省略直接:方法名();
-
没有static的方法称为实例方法,就是对象级别的方法。需要先new对象然后引用.方法();
-
就是实例对象、实例方法调用都需要new对象去调用
代码
public class MethodTest{
public static void main(String[] args){
//类名.方法名();调用
MethodTest.doSome();
//省略类名直接调用
doSome();
MethodTest m1 = new MethodTest();
//引用.方法名();才可以调用无static的方法
m1.doOther();
}
//定义一个有static的方法
public static void doSome(){
System.out.println("doSome执行");
}
//定义一个无static的方法
public void doOther(){
System.out.println("doOther执行");
}
}
怎么封装?
-
私有化 private关键字
-
private关键字声明后,变量只能在当前类调用
-
-
提供对外开放的入口
封装get和set方法读取和修改
-
这样的方法定义的时候不能使用 static 关键字修饰,被称为实例方法 :set 和 get 方法访问的都是某个具体对象的属性, 不同的对象调用 get 方法获取的属性值不同,所以 set 和 get 方法必须有对象的存在才能调用。
-
对象级别的 方法,不能直接采用“类名”调用,必须先创建对象,再通过“引用”去访问。
-
get方法要求:public 返回值类型 get + 属性名首字母大写(){
return;
}
-
set 方法规范中要求是 public void set + 属性名首字母大写(一个参数){
xxx = 一个参数;
}
public class Person{
//封装,提供一个get和一个set接口
private int age;
//get方法
public int getAge(){
return age;
}
//set方法
public void setAge(int nianLing){
if (nianLing<0 ||nianLing>150){
System.out.println("您输入的年龄值不合法!请您重新赋值");
return; //只要有return语句执行,当前所在方法就结束
}
System.out.println("年龄合法才会执行这里------------------------------");
age = nianLing;
}
}
调用
public class PersonTest02{
public static void main(String[] args){
Person p1 = new Person();
//int nianLing = p1.getAge();
//System.out.println(nianLing); //0
p1.setAge(188);
//System.out.println(p1.getAge()); //0
p1.setAge(18);
//System.out.println(p1.getAge()); //18
p1.setAge(108);
//System.out.println(p1.getAge()); //108
//注:如果setAge时,传的变量不符合要求,return;执行,整个方法会结束。【该方法】后面的代码就执行不到
}
}
本文深入解析Java面向对象的封装特性,阐述其在保证数据安全性和简化接口调用方面的作用。通过实例演示如何利用private关键字进行数据隐藏,并通过get和set方法实现属性的安全访问与修改。
206

被折叠的 条评论
为什么被折叠?



