封装概述:
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式,这里就会用到一个关键字是private,在后面的使用成员变量时候,不能直接调动,只能通过方法调用;
好处:
- 隐藏实现细节,提供公共的访问方式;
- 提高了代码的复用性;
- 提高安全性;
封装原则:
- 将不需要对外提供的内容都隐藏起来;
- 把属性隐藏,提供公共方法对其访问;
private关键字
- private关键字
是一个权限修饰符
可以修饰成员(成员变量和成员方法)
被private修饰的成员只在本类中才能访问 - private最常见的应用
把成员变量用private修饰
提供对应的getXXX()/setXXX()方法
一个标准的案例的使用
package cn.manman.com;
public class fengzhuang {
private String name;
private int age;
private String address;
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 String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
被private修饰之后的成员变量和成员方法只能在本类中使用,不能在另外一个类直接调用;
练习:
将手机类写成一个标准类,然后创建对象测试功能;
(1)封装类
package cn.manman.com;
public class phone {
private String brand;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
private int price;
private String color;
}
(2)测试类
package cn.manman.com;
public class PhoneDemo {
public static void main(String[] args) {
phone p=new phone();
p.setBrand("华为");
p.setColor("粉色");
p.setPrice(10000);
System.out.println(p.getBrand()+p.getColor()+p.getPrice());
}
}
结果
接下来看类中得成员方法以及使用:
package cn.manman.com;
/*
* 类的组成:
* 成员变量
* 构造方法
* 成员方法
* 根据返回值:
* void类型
* 非void类型
* 式参数:
* 空参数方法
* 非空参方法
*/
class fang{
public String getString (){
return "hello";
}
public void show(){
System.out.println("show");
}
public void method(String name){
System.out.println(name);
}
public String funtion(String s1,String s2){
return s1+s2;
}
}
public class fangfa {
public static void main(String[] args) {
fang f=new fang();
//调用无参无返回值
f.show();
//调用无参有返回值方法
String result=f.getString();
System.out.println(result);
//调用有参无返回值方法
f.method("lisi");
String result1=f.funtion("我是", "李四");
System.out.println(result1);
}
}
结果
练习1:定义一个类Demo,其中定义一个求两个数据和的方法,定义一个测试了Test,进行测试;
package cn.manman.com;
/*
* 定义一个类Demo,其中定义一个求两个数据和的方法,
* 定义一个测试了Test,进行测试;
*/
class Demo{
public int shuju(int a,int b){
return a+b;
}
}
public class lianxi1 {
public static void main(String[] args) {
Demo demo=new Demo();
int sum=demo.shuju(10, 20);
System.out.println(sum);
}
}
结果
练习2:定义一个长方形类,定义求周长和面积的方法,然后定义一个测试类Test,进行测试
package cn.manman.com;
/*
* 定义一个长方形类,定义求周长和面积的方法,
* 然后定义一个测试类Test,进行测试
*/
class Dem{
public int zhouchang(int a,int b){
return (a+b)*2;
}
public int mianji(int a,int b){
return a*b;
}
}
public class lianxi2 {
public static void main(String[] args) {
Dem dem=new Dem();
System.out.println(dem.zhouchang(4, 2));
System.out.println(dem.mianji(4, 2));
}
}
结果
练习3:定义一个员工类,自己分析出几个成员,然后给出成员变量,构造方法,getXXX和setXXX方法,以及一个显示所有成员信息的方法。并测试。
package cn.manman.com;
/*
* 定义一个员工类,自己分析出几个成员,然后给出成员变量,
* 构造方法,getXXX和setXXX方法,
* 以及一个显示所有成员信息的方法。并测试。
*/
class Demo11{
private int ID;
public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
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;
}
private String name;
private int age;
}
public class lianxi3 {
public static void main(String[] args) {
Demo11 Demo11=new Demo11();
Demo11.setID(1);
Demo11.setName("李四");
Demo11.setAge(12);
System.out.println(Demo11.getName()+Demo11.getAge()+Demo11.getID());
}
}
结果
练习4:定义一个类MyMath,提高基本的加减乘除功能,然后进行测试。
package cn.manman.com;
import java.util.Scanner;
/*
* 定义一个类MyMath,提高基本的加减乘除功能,然后进行测试。
*/
class MyMath{
public int add(int a,int b){
return a+b;
}
public int jian(int a,int b){
return a-b;
}
public int chengfa(int a,int b){
return a*b;
}
public int chufa(int a ,int b){
return a/b;
}
}
public class lianxi4 {
public static void main(String[] args) {
MyMath math=new MyMath();
Scanner scanner=new Scanner(System.in) ;
System.out.println("请输入您的第一个数据:");
int a=scanner.nextInt();
System.out.println("请输入您的第二个数据:");
int b=scanner.nextInt();
System.out.println("求和:"+math.add(a, b));
System.out.println("减法:"+math.jian(a, b));
System.out.println("乘法:"+math.chengfa(a, b));
System.out.println("除法:"+math.chufa(a, b));
}
}
结果
网友评论