人画圆
圆是自己画的 人只是调用了圆的方法人关门
人只是给门一个作用力 门自己关了
封装的好处?
sun公司为了在市场胜出
提前想好了程序员要干的事,提前设计了对象给程序员用
我们只有处理数据给他,调用它的方法不用自己写
socket 网络连接 想连别人的电脑
sun公司提供socket对象
封装思想:对象代表什么就要封装对应的数据。并提供对应的行为
socket代表一个网络连接,一定提供属性这个连接是谁,以及行为创建连接,发送数据
其实就是创建对象调方法
封装思想:对象代表什么就要封装对应的数据。并提供对应的行为
不安全问题
private安全
正确写法
封装:封装对应数据并提供对应的行为,所以对这些数据进行校验的方法也要写在类中
private使用整体框架:
属性private修饰 目的 保证数据安全性
不加 外界调用可以传递非法数据
加private 外界不可以直接调 ——外界还想要对private修饰赋值——要提供set和get方法
set对传递过来的数据过滤 正确赋值 ,不正确直接打印非法参数
get让外界访问
代码实例
privatesiyou代码
(补充代码基础知识
get方法有返回值,,,return 的值返回给代码调用处)!
package com.fangfa.day05;
public class privatesiyou {
//为什么用private修饰属性
//因为只能在本类中访问比较安全
private String name;
private int age;
private String gender;
//set赋值
public void setName(String n){
name = n;
}
//get 对外提供name访问属性
public String getName(){
return name;
}
//setAge给成员变量age赋值
//getAge对外提供成员变量的值
public void setAge(int a){
if(a >=18 && a<= 50){
age = a;
}else{
System.out.println("非法参数");
}
}
public int getAge(){
return age;
}
//gender
public void setGender(String g){
gender =g;
}
public String getGender(){
return gender;
}
//行为
public void sleep(){
System.out.println("女朋友在家里睡觉");
}
public void eat(){
System.out.println("女朋友在吃饭");
}
}
privatesiyouTest代码
package com.fangfa.day05;
public class privatesiyouTest {
public static void main(String[] args) {
//创建对象
privatesiyou gf1 = new privatesiyou();
//set属性方法 赋值
gf1.setName("小试试");
gf1.setAge(18);
gf1.setGender("女");
//get属性方法 获取属性值 返回name,age ,gender真正的值
System.out.println(gf1.getName());
System.out.println(gf1.getAge());
System.out.println(gf1.getGender());
//调用方法
gf1.eat();
gf1.sleep();
}
}