Java 封装的总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方法重载 9.方法重载的定义:在同一个类中创建多个方法,它们具有相同的名 称,但有不同的参数类型就能产生不同的数据输出。
10.方法重载的规则: (1)必须在同一个类中 (2)定义的方法名称一定要一样 (3)传递的参数类型一定要不一样:方法的参数类型、个数、
顺序至少有一项不相同; (4)方法的修饰返回类型符可以不相同;(用 println 方法可以
面向对象的 Java 实现-封装 本章小结
本章的小结主要体现在如下三点:
(1)通过学习对封装及封装的实现的理解的总结
(2)通过学习对构造方法的掌握技穷的总结
(3)通过学习对方法重载在程序中作用的总结
封装及封装的实现
1.封装的定义:用书面的话说就是隐藏细节实现,按我的理解就是把 一系列的数据放到一个类中,储存的数据只能在这个类中使用,以及
通过下面的例子来说明:(如何使用 set 和 get 方法) 定义类的代码:
public class Teacher{ private String name; // 姓名 private int age; // 年龄 private String sex; //学历 private String position; //职位 public String getName() { return name; }
测试类的代码:
public class Teacher2Test { public static void main(String[] args) { Teacher2 teacher1 = new Teacher2(); System.out.println(teacher1.introduction()); }
4.使用封装的好处是:保护类中的数据,使这些数据不被错误的使用
和破坏,限制对属性的不合理的操作,增强了数据访问的限制,增强
了程序的可维护性。
构造方法
5.构造方法的定义:构造方法负责对象成员的பைடு நூலகம்始化工作,为属性变
量赋予合适的初始值。
6.构造方法必须要满足以下语法规则:
(1)方法名与类名相同
(2)没有返回类型
cubiod ju1=new cubiod(m,d,y); System.out.println("长方体的体积为:"+ju1.tiji()); System.out.println("长方体的表面积为:"+ju1.biaomianji()); } }
8.构造方法的优点是简化对象初始化的代码,方便程序员的操作,不 容易使程序出错。
}
带参数的构造方法的实例
求编写一个类 Cuboid,代表长方体:
具有属性:长、宽和高,其中三者不能为负数,否则输出错误信息,
并赋予默认值 1。//用构造方法来编写程序
具有两个方法,分别用来计算长方体的体积和表面积。
定义类的代码:
public class cubiod {
private int chang; private int kuan; private int tall; public cubiod(int chang,int kuan,int tall){ if(chang>0){
7.构造方法分为两种:一是无参数的构造方法;二是带参数的构造方
法。按自己的理解直接对来区分这两种构造方法,我认为无参数的构
造方法就是直接对类中声明的属性变量直接赋初值,而带参数的构造
方法就是在测试类中对其产生的对象的属性进行初始化,然后在定义
类中调用它,最后在把其输出(也就是在在测试类中对对象属性初始
int y=input.nextInt(); System.out.print("请输入性别:"); String z=input.next(); System.out.print("请输入职位:"); String h=input.next(); teacher1.setName (x); teacher1.setAge(y); teacher1.setSex (z); teacher1.setPosition(h); System.out.println(teacher1.introduction()); } }
} public String getSex() {
return sex; } public void setSex(String sex) {
this.sex = sex; } public String getPosition() {
return position; } public void setPosition(String position) {
}//在这个类中,方法名相同,但参数类型不同
测试类的代码:
import java.util.*; public class Test {
public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.print("输入半径:"); double r=input.nextDouble(); System.out.print("输入长方形的长:"); double x=input.nextDouble(); System.out.print("输入长方形的宽:"); double y=input.nextDouble(); T mianji=new T(); System.out.println("圆的的面积:"+mianji.show(r)); System.out.println("长方形的面积:"+mianji.show(x,y));
测试类的代码:
import java.util.Scanner; public class TestCubiod {
public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.print("请输入长:"); int m=input.nextInt(); System.out.print("请输入宽:"); int d=input.nextInt(); System.out.print("请输入高:"); int y=input.nextInt();
在它的测试类中可以调用,其他的类是没有调用权限的。
2.封装中所涉及的最重要的关键字有 private,public;private 是将属 性私有化,也就是将其封装在这个类中并且通过公有的方法来访问它
(如:public)。 3.封装的实现是通过 get 和 set 两个方法来实现的 set 方法是用来给私 有后的属性进行赋值的,而 get 方法是用来取值的,通过测试类的调 用将其输出。
输出不同的数据如 int、char、string 这也就是所说的返回类型符) 11.方法重载的好处:类的各种对象都有一个相同的方法名,不必 为某一类操作定义不同的方法,可以更容易提高程序员的工作效 率,也不容易使初学者混乱类中所定义的方法。 12.最后用一个方法重载的实例来说明一下方法重载的便利之处: 例子是用方法重载实现求圆的面积和长方形的面积
public Teacher2(){ this.name="李华"; this.age=20; this.sex="男"; this.position="计算机";
} public String introduction() { return "大家好!我是" + name + ",我今年" + age+"岁,性别"+sex+",目前职位 是"+position; } }
public void setName(String name) { this.name = name;
} public int getAge() {
return age; } public void setAge(int age) {
if (age<22) { System.out.println("错误!最小年龄应为22岁!"); this.age = 22; //如果不符合年龄要求,则赋予默认值 } else { this.age = age; }
public static void main(String[] args) { Scanner input=new Scanner(System.in); Teacher teacher1 = new Teacher(); System.out.print("请输入姓名:"); String x=input.next(); System.out.print("请输入年龄:");
}
}
this.chang=chang; }else{
System.out.println("error!"); this.chang=1; } if(kuan>0){ this.kuan=kuan; }else{ System.out.println("error!"); this.kuan=1; } if(tall>0){ this.tall=tall; }else{ System.out.println("error!"); this.tall=1; } } public int tiji(){ int x=chang*kuan*tall; return x; } public int biaomianji(){ int x=(chang*kuan*2)+(kuan*tall*2)+(chang*tall*2); return x; } }
化的值相当于是实际参数,而定义类中所产生的属性变量是形式参
数,通过构造方法来调用实参将其传递给形参)。
无参数的构造方法的实例
定义类代码:
public class Teacher2{ private String name; // 姓名 private int age; // 年龄 private String sex; //学历 private String position; //职位
this.position = position; } public String introduction() { return "大家好!我是" + name + ",我今年" + age+"岁,性别"+sex+",目前职位 是"+position; } }
测试类的代码:
import java.util.*; public class TeacherTest {
代码如下: 定义类的代码:
public class T {
public double show(double R){ double z=3.14*R*R; return z; } public double show(double a,double b){ double z=a*b; return z; }
相关文档
最新文档