栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【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(){
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号