面向对象编程(OOP) 权限修饰符

类的权限修饰符

Java语言中的权限修饰符主要包括private、public和protected,这些修饰符控制着对类和类的成员变量以及成员方法的访问。如果一个类的成员变量或成员方法被修饰为private,则该成员变量只能在本类中被使用,在子类中是不可见的,并且对其他包的类也是不可见的。如果将类的成员变量和成员方法的访问权限设置为public,则除了可以在本类使用这些数据之外,还可以在子类和其他包中的类中使用。如果一个类的访问权限被设置为private,这个类讲隐藏其内的多有数据,以免用户直接访问它,如果需要使类中的数据被子类或其他包中的类使用,可以将这个类设置为public访问权限。如果一个类使用protected修饰符,那么只有本包内该类的子类或其他类可以访问此类中的成员变量和成员方法。

public和protected修饰的类可以由子类访问,如果子类和父类不在同一包中,那么只有修饰符为public的类可以被子类进行访问。如果父类不允许通过继承产生的子类访问他的成员变量,那么必须使用private声明父类的这个成员变量。

注意:当声明类时不使用private、public和protected修饰符设置类的权限,则这个类预设为包存取范围,即只有一个包中的类可以调用这个类的成员变量或成员方法。

以矩形题目为例:

package org.hanqi.pn0120;

//公共的
public class JuXing2 {

    //私有的  类的内部  封装
    private double chang;

    //保护的 protected
     public double kuan;

成员变量

在Java语言中对象的属性称为成员变量,也可以称为属性。为了了解成员变量,首先定义一个图书类,成员变量对应于类对象的属性,在Book类中设置id、name和category3个成员变量,分别对应于图书编号、图书名称和图书类别这3个图书属性。

(1)修饰符  数据类型   变量名;

(2)规范 设成私有private

开放getter或setter方法

     POJO  简单JAVA对象   ①只有属性和getter,setter方法②没有业务逻辑

以矩形为例

package org.hanqi.pn0120;

//公共的
public class JuXing2 {

    //私有的  类的内部  封装
    private double chang;

    //保护的 protected
     public double kuan;

     public double getchang()
     {
         return chang;
     }

     public double getkuan()
     {
         return kuan;
     }

     public void setchang(double chang)
     {
         //加验证
         if(chang>0)
         {
         this.chang=chang;
         }
         else
         {
             System.out.println("长度值"+chang+"无效");
         }
     }

     public void setkuan(double kuan)
     {
         if(kuan<=0)
         {
             System.out.println("宽度值"+kuan+"无效");
         }
         else
         {
             this.kuan=kuan;
         }
     }
     public JuXing2()
     {

     }

    public JuXing2(double chang,double kuan)
    {
        //this.chang=chang;
        //this.kuan=kuan;
        setchang(chang);
        setkuan(kuan);
    }

    //计算面积
    double getMianJi()
    {
        return this.chang*this.kuan;
    }

    public static void main(String[] args)
    {
        JuXing2 myJX=new JuXing2(20,6);

        myJX.chang=12;

        System.out.println("长="+myJX.chang);

        System.out.println("矩形的面积="+myJX.getMianJi());
    }

}

package org.hanqi.pn0120;

public class Test1 {

    public static void main(String[] args) {

        JuXing2 myJX1=new JuXing2(20,6);

        myJX1.kuan=10;

        //读取属性值

        System.out.println("宽="+myJX1.getkuan());
        System.out.println("长="+myJX1.getchang());

        System.out.println("面积="+myJX1.getMianJi());

        JuXing2 myJX2=new JuXing2();

        myJX2.setchang(-30);
        myJX2.setkuan(0);
        System.out.println("矩形的面积"+myJX2.getMianJi());

    }

}

时间: 2024-10-18 14:23:45

面向对象编程(OOP) 权限修饰符的相关文章

面向对象编程(OOP)————修饰符

一.类的修饰符 Java语言中的权限修饰符主要包括private.public和protected,这些修饰符控制着对类和类的成员变量以及成员方法的访问.如果一个类的成员变量或成员方法被修饰为private,则该成员变量只能在本类中被使用,在子类中是不可见的,并且对其他包的类也是不可见的.如果将类的成员变量和成员方法的访问权限设置为public,则除了可以在本类使用这些数据之外,还可以在子类和其它包中的类中使用.如果一个类的访问权限被设置为private,这个类将隐藏其内的所有数据,以免用户直接

Java内构造函数、关键字、权限修饰符、访问控制及面向对象的特性!

1, 构造函数(构造方法) 在使用 new 来创建一个对象的时候就是调用的这个类的一个构造方法(构造函数), 构造方法名与类同名, 并且没有返回值(没有返回值也不要写void) 空参的构造函数和有参数的构造函数 注释, 命名规则!!!!!!!!!! 2, 继承中的构造函数: --子类的构造方法必须调用父类的构造方法 --super(), 调用父类的构造方法, this()调用本类中另外的构造方法 3, 关键字this, static, package和import语句 this: --在类的方法

java面向对象之关键字,权限修饰符

1.关键字:this,static,package,importthis:1.表示对当前对象的引用!2.表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下.3.用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法).但是这里必须非常注意:只能引用一个构造方法且必须位于开始!还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明

面向对象的权限修饰符

权限修饰符:卸载属性/方法前面 作用:用来说明属性/方法的权限特点. class man{ private $money=1000; public $name=dita; protected function say() { } } 共有三个权限修饰符  (权限的大小 看访问时的位置) public 公共的,在任意地方都可以访问 protected保护的 位于两者之间 private私有的 在类定义的大括号内访问,出了class类就不允许访问了 Private protected public

06 面向对象:多态&amp;抽象类&amp;接口&amp;权限修饰符&amp;内部类

多态: /* 多态(polymorphic)概述 * 事物存在的多种形态 多态前提 * a:要有继承关系. * b:要有方法重写. * c:要有父类引用指向子类对象. * 成员变量 * 编译看左边(父类),运行看左边(父类). * 成员方法 * 编译看左边(父类),运行看右边(子类).动态绑定 * 静态方法 * 编译看左边(父类),运行看左边(父类). * (静态和类相关,算不上重写,所以,访问还是左边的) * 只有非静态的成员方法,编译看左边,运行看右边 */ class Demo_Polym

JavaSE知识-10(面向对象_权限修饰符&amp;匿名内部类)

A:为什么要有包 将字节码(.class)进行分类存放 包其实就是文件夹 举例: 学生:增加,删除,修改,查询 老师:增加,删除,修改,查询 ... 方案1:按照功能分 com.hwh.add AddStudent AddTeacher com.hwh.delete DeleteStudent DeleteTeacher com.hwh.update UpdateStudent UpdateTeacher com.hwh.find FindStudent FindTeacher 方案2:按照模块

2016/1/17 笔记 1,面向对象编程OOP 2,类

面向对象编程OOP 编程方式的发展 1,面向过程 重用性低 维护工作量大  2,面向对象 重用性高 维护容易 概念 1,对象 Object 一个具体的事物 是类的实例      2,类Class 同一类事物的统称 具有相同属性和行为的一类实体 特性:1,封装:  oop的核心思想           封装属性和行为,隐藏细节           保证内部数据完整性        2,继承: 子类自动继承所有父类的属性和行为           java是单继承 所有类的父类Object     

Java系列学习(十)-包与权限修饰符

1.形式参数和返回值的问题 (1)形式参数: A:类名:需要该类的对象 B:抽象类名:需要改类的子类对象 C:接口名:需要该接口的实现对象 (2)返回值类型: A:类名:抽象类名:返回的是该类的对象 B:抽象类名:返回的是该类的子类对象 C:接口名:返回的是该接口的实现类对象 (3)链式编程 每次调用完毕方法后,返回的是一个对象 2.包 (1)其实就是文件夹   (2)作用: A:区分同名的类 B:对类进行分类管理 ①按照功能分 ②按照模块分 (3)包的定义: ①package 包名; ②多级包

23 Python - 面向对象编程OOP

面向对象编程OOP 01 方法__repr__()和__str__() __repr__()方法类似java中的toString方法,用于反馈类的相关信息且可以自己定义,一般用于开发人员控制台调试 __rept__()和__str__()方法区别 在控制台交互测试时: 输入b返回__rept__()方法结果 输入print(b) 返回__str__()方法结果,如果没有定义__str__()方法  则用__rept__()结果代替__str__()方法结果 __rept__()   打印信息一般