Java基础-类的封装,成员变量的访问及隐藏
2017-03-03 16:28
1136 查看
1.给类的变量封装,加访问权限(get(),set())步骤:
![](http://img.blog.csdn.net/20170303161745140?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FubG9uZzM2MDU5OTMzNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20170303161757125?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FubG9uZzM2MDU5OTMzNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20170303161812207?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FubG9uZzM2MDU5OTMzNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.成员变量的访问权限:
2.1 建第一个包,类里面设置几个变量,有public,protected和默认类型(什么都不加)
![](http://img.blog.csdn.net/20170303162230630?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FubG9uZzM2MDU5OTMzNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.2 建第二个包,去引用第一个包,然后去继承第一个包里面的类,如下图:
![](http://img.blog.csdn.net/20170303162350756?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FubG9uZzM2MDU5OTMzNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2.3 引用第二个包,开始调用其类的变量和方法
![](http://img.blog.csdn.net/20170303161829629?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2FubG9uZzM2MDU5OTMzNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
具体实现调用的代码:
import cn.test.SecondPackage.*;
public class EncapsulationStudy {
public static void main(String[] args) {
System.out.println("--------成员变量的访问---------");
SecondClass scc=new SecondClass();
scc.print();
System.out.println("--------成员变量的隐藏---------");
Father f=new Father();
System.out.println(f.str);
Son s=new Son();
//由于Son继承了Father类,同时输出str值,可以看出Son输出的是自己的值,并没有输出Father的str值,等于是覆盖了,或者说是隐藏了父类的str值
System.out.println(s.str);
//如果需要访问父类的str值,这个时候可以在Son类通过super来进行访问
s.ShowFatherStr();
}
}
class Father{
String str="Father String";
}
class Son extends Father{
String str="Son String";
void ShowFatherStr(){
//通过super来去访问父类的变量
System.out.println(super.str);
}
}
//类的封装,属性的访问
class HumanInfo
{
String name;
int age;
String address;
double weight;
double height;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getAddress() {
return address;
}
public double getWeight() {
return weight;
}
public double getHeight() {
return height;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setAddress(String address) {
this.address = address;
}
public void setWeight(double weight) {
this.weight = weight;
}
public void setHeight(double height) {
this.height = height;
}
}
2.成员变量的访问权限:
2.1 建第一个包,类里面设置几个变量,有public,protected和默认类型(什么都不加)
2.2 建第二个包,去引用第一个包,然后去继承第一个包里面的类,如下图:
2.3 引用第二个包,开始调用其类的变量和方法
具体实现调用的代码:
import cn.test.SecondPackage.*;
public class EncapsulationStudy {
public static void main(String[] args) {
System.out.println("--------成员变量的访问---------");
SecondClass scc=new SecondClass();
scc.print();
System.out.println("--------成员变量的隐藏---------");
Father f=new Father();
System.out.println(f.str);
Son s=new Son();
//由于Son继承了Father类,同时输出str值,可以看出Son输出的是自己的值,并没有输出Father的str值,等于是覆盖了,或者说是隐藏了父类的str值
System.out.println(s.str);
//如果需要访问父类的str值,这个时候可以在Son类通过super来进行访问
s.ShowFatherStr();
}
}
class Father{
String str="Father String";
}
class Son extends Father{
String str="Son String";
void ShowFatherStr(){
//通过super来去访问父类的变量
System.out.println(super.str);
}
}
//类的封装,属性的访问
class HumanInfo
{
String name;
int age;
String address;
double weight;
double height;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getAddress() {
return address;
}
public double getWeight() {
return weight;
}
public double getHeight() {
return height;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setAddress(String address) {
this.address = address;
}
public void setWeight(double weight) {
this.weight = weight;
}
public void setHeight(double height) {
this.height = height;
}
}
相关文章推荐
- Java基础-07.总结private,this,封装,static,成员方法变量,局部变量匿名对象
- 黑马程序员_Java基础_面向对象(概述、类与对象关系、成员变量、封装private、构造函数和构造代码块、this关键字)
- JAVA基础初探(四)JAVA封装、包的概念及使用、访问修饰符、this关键字、内部类(成员,静态,方法,匿名)
- Java基础:面向对象(1)--对象的概念、成员变量与局部变量、匿名对象、类的封装
- Java基础05:面向对象;类与对象;匿名对象;成员变量;局部变量;封装;构造函数
- Java基础知识_day07_(面向对象,构造方法,封装,成员变量与局部变量)
- Java语言基础{Java_se(05)}-面向对象-封装-构造方法-成员变量,局部变量
- java基础七(成员变量 局部变量 匿名对象 封装 设计原则 private this 构造方法 static)
- 【转】Java基础——成员变量、局部变量和静态变量的区别
- JAVA基础day05 面向对象思想 成员变量和方法 封装 构造方法和this的使用
- Java基础-常量,变量,成员变量,局部变量
- java学习之路 之 面向对象编程-面向对象特征之一(封装和隐藏)级类的成员之三(构造器、构造方法)
- JAVA基础再回首(四)——面向对象思想、类与对象、成员/局部变量、匿名对象、封装、private、this、构造方法
- java成员变量和方法的public等访问限定符的访问权限
- 【Java基础】成员变量和局部变量的区别
- 【java基础】变量和方法的访问权限
- I学霸官方免费教程九:Java基础之成员变量(全局变量)和局部变量
- java基础--07成员变量和局部变量
- Java成员变量的访问权限
- Java基础——成员变量、局部变量和静态变量的区别