zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java面向对象编程——封装

JAVA封装 面向对象编程
2023-09-11 14:21:22 时间

目录

第六章、访问控制

一、包的概念

 1.package语句

 2.import语句

二、访问修饰符

1.访问修饰符

2.访问修饰符修饰成员

3.访问修饰符修饰类

第七章、封装

一、封装的意义

二、封装的实现

三、总结


第六章、访问控制

一、包的概念

 1.package语句

  • - 在Java中使用package关键字区别同名的类 
  • - package的目的: 解决命名冲突的问题 
  • - 包语句必须写在java文件的开头 
  • - 格式如下: 
package com.sanx.oop.modifier;//指定包名,不同的包下可以存在同名的类
  • - 一个类的全限定类名指的是: 包名 + 类名 
java.util.Scanner scan = new java.util.Scanner(System.in);
  • - 包名的命名有如下规则:倒域名
package org.apache.commons.lang.StringUtils;
  1. - StringUtils : 类名 
  2. - org.apache : 公司或者组织域名的反写 
  3. - commons : 项目名称信息 
  4. - lang : 项目模块信息
  • - 包名实际上在本地工程目录中是一个多级文件目录,以 “.” 分割 
  • - java.lang包下的所有类不用导包 
  • - 常见Java包
  1. - java.math 数学运算 
  2. - java.io io包
  3. - java.utils 集合等 
  4. - java.net 网络编程 
  5. - java.sql 数据库

 2.import语句

  • import语句:用于导包,简化导包语句
  • 在java.lang包下的类不用导包,如String
import java.util.Scanner; 

public class TestPackage { 
    public static void main(String[] args) { 
        /* * 
             1.当使用全类名书写时很繁琐因此采用简写 * 
             2.简写的前提时必须要使用import语句导入这个包 * 
             3.导入的包只限于当前的java文件。
          */ 
   //java.util.Scanner scan = new java.util.Scanner(System.in); 
  Scanner scan = new Scanner(System.in); 
    } 
}

二、访问修饰符

1.访问修饰符

  • private:只能在本类中访问

2.访问修饰符修饰成员

  • - public 修饰的成员可以在任意类访问,意义:对外提供可以被调用的功能。 
  • - private 修饰的成员只能在本类中使用,意义 : 对内的封装,减少维护成本。 
  • - 默认的(不写) 的成员可以在本类和同一个包中的类访问。 
  • - protected修饰成员 可以在本类、同一个包中的类及其他包中子类访问。

3.访问修饰符修饰类

  • - 类的修饰 :public 和 默认的 
  1. - 一个Java文件中只能有一个public修饰的类 
  2. - 类的修饰词只有 : final 、abstract 、 public 、默认的
  • -  内部类的修饰可以使用任意修饰词

第七章、封装

一、封装的意义

  • 即隐藏对象的属性和实现细节,仅对外公开接口。

  • 将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体(类)。

二、封装的实现

  • 将属性私有化,提供供外部访问的公共接口set和get方法

public class Person {
    /*
    (entity,pojo,javaBean,vo)实体类:人类---->javaBean
     */

    //保护了的属性
    private  String name;
    private int age;

    //提供一个公共的“接口”---->操作属性的---->存取
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}
public class TestPerson {

    public static void main(String[] args) {

        Person person = new Person();
        person.setName("zhangsan");
        System.out.println(person.getName());

    }
}

三、总结

  • 私有化的目的: 对数据进行隐藏

  • set和get方法目的: 对外提供操作数据的公共 “接口“ IDEA可以自动生成

  • 生成有参构造方法:

  • 生成无参构造方法

 

 四、练习



public class Shop {

    private int id;
    private String sname;
    private String szl;
    private double price;
    private long snum;
    private String scadrr;


    public Shop() {
        
    }

    public Shop(int id, String sname, String szl, double price, long snum, String scadrr) {
        this.id = id;
        this.sname = sname;
        this.szl = szl;
        this.price = price;
        this.snum = snum;
        this.scadrr = scadrr;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public String getSzl() {
        return szl;
    }

    public void setSzl(String szl) {
        this.szl = szl;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public long getSnum() {
        return snum;
    }

    public void setSnum(long snum) {
        this.snum = snum;
    }

    public String getScadrr() {
        return scadrr;
    }

    public void setScadrr(String scadrr) {
        this.scadrr = scadrr;
    }
}