【Java 基础学习-面向对象-06类与对象-封装】

封装

  • 类与对象
    • 我们在类中会构造方法,定义属性,定义方法。
    • 在对象中,会进行属性赋值,并且调用方法。
  • 封装
    • 封装:针对属性用到访问权限修饰符
    • 访问权限修饰符:public/private/protected/(缺省/空的)
    • 访问权限修饰符使用范围:
      • 整个项目:public
      • 同一个包内:缺省的/protected
      • 类.java文件中:private

封装过程

  • 将属性用private修饰,将其私有化
  • 给外界public提供get和set方法,让外界间接的访问和操作属性

- User.java中

  • 在定义类中,用访问权限修饰符private对属性name,age,height进行访问权限限制。
  • 限制条件为 年龄不小于20岁 身高不低于160cm

首先对属性进行封装

public class User{
private String name;
private int age;
private int height;
}

针对属性name进行get方法取值

public String getName(){
return name;
}

针对属性name进行set方法赋值

public void Setname(String name){
this.name=name;
//输入需要的代码命令
}

同理对属性age,height进行get与set方法


public int getAge(){
return age;
}
public void Setage(int age){
if(age<20){
System.out.println("未成年")}else{
this.age=age;
}
}
public int getHeight(){
return height;
}
public void Setheight(int height){
if(height<160){
System.out.println("身高不达标")}else{this.height=height;
}
}
public void showInfo(){
System.out.println(name+age+height)
}

- UserManage.java中

public class UserManage(){
public static void main(String[]args){
User user=new User();
user.setName("qwb");
user.setAge(18);
user.setHeight(180);
uesr.showInfo();
}
}

构造方法

  • 当属性较多时,每个属性都要get与set方法时,代码会较多。
  • 因此采用构造方法来简化
  • 第一种:有参数的构造方法

public class User{
//首先对属性进行封装
private String name;
private int age;
private int height;
//接着构造方法
//格式如下
public  User(String name, int age,int height){
//有参数的构造方法,括号内加入属性
this.name=name;
this.age=age;
this.height=height;
}
public void showInfo(){
System.out.println(name+age+height)
}
public class UserManage(){
public static void main(String[]args){

User user=new User("qwb",18,180);
//构造对象方法,即在创建对象时,在对象后面括号内对属性赋值
uesr.showInfo();
}
}
  • 第二种:无参数的构造方法

public class User{
//首先对属性进行封装
private String name;
private int age;
private int height;
//接着构造方法
//格式如下
public  User(){
//无参数的构造方法,括号内不加入属性
this.name=name;
this.age=age;
this.height=height;
}
public void showInfo(){
System.out.println(name+age+height)
}
public class UserManage(){
public static void main(String[]args){
User user=new User();
//无参数的构造对象方法,
user.setName("qwb");
user.setAge(18);
user.setHeight(180);
uesr.showInfo();
}
}
  • 总结封装的三种写法
    • 属性封装+get与set方法
    • 属性封装+构造方法有参数
    • 属性封装+构造方法无参数

绑定画布的三种方法
方法一:直接复制地址
DrawUI.java

Graphics g=jf.getGraphics();
DrawListen drawlisten=new DrawListen(g);
jf.addMouseListener(drawlisten);
drawlisten.g=g;

DrawListen.java

Graphics g;

方法二:有参
DrawUI.java

Graphics g=jf.getGraphics();
DrawListen drawlisten=new DrawListen(g);
jf.addMouseListener(drawlisten);

DrawListen.java

private Graphics g;
public DrawListen(Graphics g){
this.g=g;
}

方法三:无参
DrawUI.java

Graphics g=jf.getGraphics();
DrawListen drawlisten=new DrawListen();
jf.addMouseListener(drawlisten);

DrawListen.java

private Graphics g;
public DrawListen(){
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值