网站设计与网页建设,中山网站免费制作,网站网站弹出窗口去掉,软件ui设计培训学校Java面向对象—封装
面向对象简称 OO#xff08;Object Oriented#xff09;#xff0c;20 世纪 80 年代以后#xff0c;有了面向对象分析#xff08;OOA#xff09;、 面向对象设计#xff08;OOD#xff09;、面向对象程序设计#xff08;OOP#xff09;等新的系统…Java面向对象—封装
面向对象简称 OOObject Oriented20 世纪 80 年代以后有了面向对象分析OOA、 面向对象设计OOD、面向对象程序设计OOP等新的系统开发方式模型的研究。对 Java 语言来说一切皆是对象。把现实世界中的对象抽象地体现在编程世界中一个对象代表了某个具体的操作。一个个对象最终组成了完整的程序设计这些对象可以是独立存在的也可以是从别的对象继承过来的。对象之间通过相互作用传递信息实现程序开发。 面向对象的三大核心特性
封装性继承性多态性
今天我们重点来讲解Java面向对象的第一个特性封装性。
一、package和import语句
所谓的封装其实很好理解就是将代码通过包装的方式存放起来。既然是通过包装的方式那么我们可以理解为将代码存放在一个容器当中这个容器我们称之为包。
1、package关键字是用来定义包的。
示例代码
package com.admin.bean;
代码解析
Java通过package关键字定义了包根据不同层级的延伸编译工具会自动为项目创建相应层级的包。就好像我们在电脑中的某个盘符下创建的文件夹。根据示例代码也就是我们这个类存放在项目目录下的com–admin–bean文件夹下。如果代码中没有出现package关键字则证明该类存储于项目的src根目录下包为默认包。
2、import关键字是用来引用包的我们的类或者Java的开发类都存放在不同包下当我们要是用这个类时就需要将这个类引入使用import关键字进行引用。同包下的类不需要引用就可以直接使用。 示例代码
import java.util.*;
代码解析 Java通过import关键字将java包下的util包下的所有类都进行了引用。
3、Java常用包
Java.lang包含一些Java语言的核心类如String、Math、Integer、System和Thread提供常用功能java.awt包含了构成抽象窗口工具集的多个类这些类被用来构建和管理应用程序的图形用户界面GUIjava.net包含执行与网络相关的操作类java.io包含能提供多种输入/输出功能的类java.util包含一些使用工具类如使用与日期相关的函数等
总结在Java语言中所有引用于其他包下的类都需要用import引用只有java.lang包作为核心类不需要引用可直接使用。
二、封装
1、封装的定义
封装是 Java 面向对象的特点的表现封装是一种信息隐蔽技术。它有两个含义即把对象的全部属性和全部服务结合在一起形成一个不可分割的独立单位以及尽可能隐藏对象的内部结构。也就是说如果我们使用了封装技术的话别人就只能用我们做出来的东西而看不见我们做的这个东西的内部结构了。
2、封装的作用
封装迫使用户通过方法访问数据能保护对象的数据不被误修改还能使对象的重用变得更简单。数据隐藏通常指的就是封装。它将对象的外部界面与对象的实现区分开来隐藏实现细节。迫使用户去使用外部对象即使实现细节改变还可通过对象承担其功能而保留原样确保调用它的代码还继续工作。封装使代码维护更简单。
3、封装的特点
把类的属性隐藏提供公共方法对其访问提高了代码的复用性提高了代码的安全性
4、封装的方式
私有化成员变量私有化成员变量使用private关键字修饰。
代码示例
public class Admin {private String name;private int age;private String phone;private String password;}
设置构造方法函数为类创建构造方法函数构造方法用来实例化类对象
代码示例
public class Admin {private String name;private int age;private String phone;private String password;public Admin() {}public Admin(String name,int age,String phone,String password) {this.namename;this.ageage;this.phonephone;this.passwordpassword;}
}
设置成员变量的公共方法进行访问
为每个成员变量类的属性创建get和set方法get方法表示获取属性set方法表示为属性赋值。
package com.admin.bean;public class Admin {private String name;private int age;private String phone;private String password;public Admin() {}public Admin(String name,int age,String phone,String password) {this.namename;this.ageage;this.phonephone;this.passwordpassword;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone phone;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}}
使用this关键字引用
使用this关键字指向本类属性用来与形式参数区分。
package com.admin.bean;public class Admin {private String name;private int age;private String phone;private String password;public Admin() {}public Admin(String name,int age,String phone,String password) {this.namename;this.ageage;this.phonephone;this.passwordpassword;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getPhone() {return phone;}public void setPhone(String phone) {this.phone phone;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}}
附录Java的访问修饰符 访问修饰符是用来控制类、属性、方法被访问的权限的。访问修饰符巧妙的实现了Java面向对象的访问权限。 private 1.在当前类开发中main方法之外可以直接借助名字使用当前类的main方法中可以使用对象打点的方式直接使用成员。 2.在当前类之外使用对象或是类名针对静态的打点调用都是被限制的。这时候有同学问那我开发的这个私有的成员难道不能使用了吗不是可以通过在当前类中开发一个公有的方法在公有方法中可以使用这个私有的成员从而达到间接使用私有成员。 3.在继承中私有成员禁止被继承也就是说在子类的开发中拒绝直接使用私有成员的名字进行使用。 public 1.在当前类开发中main方法之外可以直接借助名字使用当前类的main方法中可以使用对象打点的方式直接使用成员。 2.在当前类之外使用对象或是类名针对静态的打点调用是被允许的。 3.在子类中公有成员允许被继承也就是说在子类的开发中可以直接使用公有成员的名字进行使用。 protected protected这个修饰符比较繁琐它涉及到是否是同一个包的问题。 同一个包的情况 1.在当前类开发中main方法之外可以直接借助名字使用当前类的main方法中可以使用对象打点的方式直接使用成员。 2.在当前类之外同一个包中使用对象或是类名针对静态的打点调用是被允许的。 3.在子类中同一个包中受保护成员允许被继承也就是说在子类的开发中可以直接使用受保护成员的名字进行使用。子类的main方法中可以使用子类或是父类对象打点调用。 4.在当前类之外子类之外要使用子类的类中同一个包中可以使用子类或是父类对象打点调用。 不同包的情况 1.在当前类之外不同包中使用对象或是类名针对静态的打点调用是被禁止的。 2.在子类中不同包中受保护成员允许被继承也就是说在子类的开发中可以直接使用受保护成员的名字进行使用。子类的main方法中只能通过子类对象打点调用。父类对象不行这个时候相当于父类中的受保护成员跨包了。 3.在当前类之外子类之外要使用子类的类中与子类同一个包中通过子类对象打点是调用不出父类中的受保护的成员的。父类对象更不行这个时候相当于父类中的受保护成员跨包了。如果想要通过子类对象调用父类的受保护的成员需要重新覆写父类的这个成员。 4.在当前类之外子类之外要使用子类的类中与父类同一个包中通过子类对象打点是可以调用父类中的受保护的成员的。父类对象也行同个包中。 5.在与父类和子类都不同包的第三个包中要想通过子类对象调用父类的受保护成员可以通过覆写父类受保护成员并将访问限制符修改成public。
总结private只能自己访问public所有人都可以访问protected只能在父子类中访问