java面向对象编程——封装
2023-09-11 14:21:22 时间
目录
第六章、访问控制
一、包的概念
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;
- - StringUtils : 类名
- - org.apache : 公司或者组织域名的反写
- - commons : 项目名称信息
- - lang : 项目模块信息
- - 包名实际上在本地工程目录中是一个多级文件目录,以 “.” 分割
- - java.lang包下的所有类不用导包
- - 常见Java包
- - java.math 数学运算
- - java.io io包
- - java.utils 集合等
- - java.net 网络编程
- - 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 和 默认的
- - 一个Java文件中只能有一个public修饰的类
- - 类的修饰词只有 : 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;
}
}
相关文章
- 项目模块太多, 无法编译, java: java.lang.OutOfMemoryError: WrappedJavaFileObject[org.jetbrains.jps.javac.InputFileObjec
- java -version 问题 : C:ProgramDataOracleJavajavapath;
- JAVA-JAVA WEB开发工具下载与安装
- 循环录(输)入 java 课的学生成绩(5个学生),统计分数大于等于 80 分的学生
- JAVA学习(五):Java面向对象编程基础
- Java实现 洛谷 P1579 哥德巴赫猜想(升级版)
- Java实现第八届蓝桥杯分巧克力
- Java实现第九届蓝桥杯方格计数
- Java实现夺冠概率模拟
- java 11 Java Flight Recorder
- 【JAVA】 01-Java基础知识
- aspose.slides for java去除水印
- java.lang.IllegalStateException: Failed to load ApplicationContext selenium 异常 解决
- 【JAVA】 04-Java中的多线程
- Atitit usbQb212 oo 面向对象封装的标准化与规范解决方案java c# php js
- paip.注册java程序为LINUX系统服务的总结。
- Spire.PDF for Java 8.12.6 happy new year
- Java 关于java.util.LinkedHashMap cannot be cast to 实体类问题答案
- 【华为OD机试 2023】获取最大软件版本号(C++ Java JavaScript Python)
- 使用Java操作Elasticsearch(Elasticsearch的java api使用)
- Java 封装
- 【java】Java 封装
- 【java】Java 抽象类
- JAVA面向对象特征之——封装
- Java日志 - log4简单使用实例及其再次封装