温州网站建设首选国鼎网络,网店推广软件,枣庄网站seo,做纺织外贸哪个贸易网站好学习-Java类和对象之访问限制
100
任务要求参考答案评论28
任务描述相关知识 defaultpublicprivateprotected编程要求测试说明 任务描述
本关任务#xff1a;实现图书类#xff0c;该类包含了图书的基本属性和信息。
相关知识
为了完成本关任务#xff0c;你需要掌握实现图书类该类包含了图书的基本属性和信息。
相关知识
为了完成本关任务你需要掌握Java 访问控制修饰符的使用。
Java 中可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。
访问控制符是一组限定类、属性或方法是否可以被程序里的其他部分访问和调用的修饰符。类的访问控制符只能是空或者 public方法和属性的访问控制符有 4 个分别是 public、 private、protected 和 default其中 default 是一种没有定义专门的访问控制符的默认情况。
我们可以通过下表来说明访问权限
修饰符当前类同一包内子孙类(同一包)子孙类(不同包)其他包publicYYYYYprotectedYYYY/N说明NdefaultYYYNNprivateYNNNN
访问控制存在的原因
让客户端程序员无法触及他们不应该触及的部分允许库设计者改变类内部的工作方式而不用担心会影响到客户端程序员。
default
如果一个类没有访问控制符说明它具有默认的访问控制特性。这种默认的访问控制权规定该类只能被同一个包中的类访问和引用而不能被其他包中的类使用。
例如
Demo 类现在使用的是默认控制符并且它在 com.test 包中。 package com.testclass Demo {}
Person 类也处于 com.test 包中。 package com.testimport com.test.Demo;class Person {Demo d;}
上面的这两个类都处于同一个包中它们被默认控制符所修饰所以两个类可以相互访问。而假如 Demo 类处于 com 包中则它们就不能互相访问。
public
共有的是访问权限限制最宽的修饰符。被 public 修饰的类、属性、及方法不仅可以跨类访问而且可以跨包访问。 例如 public static void main(String[] args) {}
我们之前所定义的主方法不管在哪个类中哪个包中都可以被访问。
private
用 private 修饰的类成员、属性以及方法只能被该类的对象访问而不能被任何其他类包括该类的子类访问和引用。因此private 修饰符具有最高的保护级别。声明为私有访问类型的变量只能通过类中公共的 getter 方法被外部类访问。
例如 public class Person {private String name;private int age;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;}}
实例中Person 类中的 age 和 name 变量为私有变量所以其他类不能直接得到和设置该变量的值。为了使其他类能够操作该变量定义了两个变量的 get 和 set 方法用来获取变量的值和设置变量的值。 public class Demo {public static void main(String[] args) {Person person new Person();person.setAge(18);person.setName(张三);System.out.printf(我的名字叫%s今年%d岁,person.getName(),person.getAge());}}
执行结果 我的名字叫张三今年18岁
protected
用保护访问控制符 protected 修饰的类成员可以被三种类所访问该类自身、与它在同一个包中的其他类以及在其他包中的该类的子类。protected 修饰符的主要作用是允许其他包中它的子类来访问父类的特定属性和方法否则可以使用默认访问控制符。 /*** 任务实现图书类该类包含了图书的基本属性和信息。* 类名为Book*/// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
public class Book {// 定义四个私有变量// 图书名称bookName String// 图书单价price double// 图书库存total int// 图书idbookId intprivate String bookName;private double price;private int total;private int bookId;// 获取图书名称public String getBookName() {return bookName;}// 设置图书名称public void setBookName(String bookName) {this.bookNamebookName;}// 获取图书单价public double getPrice() {return price;}// 设置图书单价public void setPrice(double price) {this.priceprice;}// 获取图书库存public int getTotal() {return total;}// 设置图书库存public void setTotal(int total) {this.totaltotal;}// 获取图书idpublic int getBookId() {return bookId;}// 设置图书idpublic void setBookId(int bookId) {this.bookIdbookId;}}
/********** End **********/练习-Java类和对象之访问限制
100
任务要求参考答案评论4
任务描述编程要求测试说明 任务描述
本关任务实现一个电影类 /*** 任务实现一个电影类* 类名为Movie*/// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/public class Movie {// 定义6个变量// 电影idid int 电影名称movieName String 电影类型movieType String// 电影评分double score 电影时长totalTime int 电影简介content Stringprivate int id,totalTime;String movieName,movieType,content;double score;public void setId(int id){this.idid;}public int getId(){return id;}public void setMovieName(String movie){movieNamemovie;}public String getMovieName(){return movieName;}public void setMovieType(String type){movieTypetype;}public String getMovieType(){return movieType;}public void setScore(double s){scores;}public double getScore(){return score;}public void setTotalTime (int time){totalTimetime;}public int getTotalTime(){return totalTime;}public void setContent(String con){contentcon;}public String getContent(){return content;}// 定义设置和获取6个变量值的方法}
/********** End **********/