当前位置:   article > 正文

面向对象实例:小明去考试加封装版本和set() 和get()方法使用

对数组n进行封装,即添加set( )、get( )

       我们先来看看set和get这两个词的表面意思,set是设置的意思,而get是获取的意思,顾名思义,这两个方法是对数据进行设置和获取用的。而且,在类中使用set和get方法时,都是在set和get后面跟上一些特定的词来形成特定意思的方法名,比如setage()和getage(),表示设置年龄和获取年龄。
       然后我们来了解一下JAVA面向对象编程中的封闭性和安全性。封闭性即对类中的域变量进行封闭操作,即用private来修饰他们,如此一来其他类则不能对该变量访问。这样我们就将这些变量封闭在了类内部,这样就提高了数据的安全性,当我们想要操作这些域变量怎么办呢?我们可以通过两种方法,第一中即通过public方式的构造器(或称构造函数),对象一实例化就对该变量赋值。第二种就是通过上面提到的set和get方法,这里我举一个特定的例子,我定义一个Person类,该类中有name、age这两个私有域变量,然后我定义setname()、getname()、setage()、getage()这四个方法,通过这四个方法来实现对name和age的操作。这样一来,我不用直接对Person类中的域变量操作,而是通过set和get方法间接地操作这些变量,这样就能提高域变量的安全性,同时又保证了域变量的封装型。

       最后说说set和get方法的使用场景,一般来说set和get方法都是对私有域变量进行操作的,所以大多数都是使用在包含特定属性的类实体中。
现在你明白set和get方法了吧,其实这两个方法只是类中的setxxx和getxxx方法的总称。
       在今后的开发过程中,只要你细心体会,结合JAVA中的一些宏观的知识。set和get方法还是很容易理解的,或许你还会领会一些其他的JAVA中的重要理论知识。

  1. package cn.itcast.domain;
  2. import java.util.Date;
  3. public class User {
  4. private String username;
  5. private String password;
  6. private String gender;
  7. private Date birthday;
  8. private String email;
  9. public String getUsername() {
  10.   return username;
  11. }
  12. public void setUsername(String username) {
  13.   this.username = username;
  14. }
  15. public String getPassword() {
  16.   return password;
  17. }
  18. public void setPassword(String password) {
  19.   this.password = password;
  20. }
  21. public String getGender() {
  22.   return gender;
  23. }
  24. public void setGender(String gender) {
  25.   this.gender = gender;
  26. }
  27. public Date getBirthday() {
  28.   return birthday;
  29. }
  30. public void setBirthday(Date birthday) {
  31.   this.birthday = birthday;
  32. }
  33. public String getEmail() {
  34.   return email;
  35. }
  36. public void setEmail(String email) {
  37.   this.email = email;
  38. }
  39. }
  40. User u = new User();
  41. u.setXXX();
  42. u.getXXX();
  43. 你想给他赋值就用u.setXXX();    取这个类的对象的某个值 就get

------------------------------------------------------------------------------------------------------------

---

       在java中, 进行封装之后,不能公开使用public进行调用属性,使用private和default 等,进行封装,之后,在需要调用属性的时候,可以使用set() get() 方法进行调用,

       set()方法和构造方法不一样,构造方法是给变量赋初始值,set方法是赋值。

上述图片需求代码的执行结果

  1. D:\workspace\easy\prc01>java -classpath .;classes com.ab.xm.Forobject
  2. 小明骑着一辆价值为1880.0ofo小黄车,去长江路199号浦口外国语中学考试,
  3. 小明做了选择0
  4. 小明做了选择1
  5. 小明做了选择2
  6. 小明做了选择3
  7. 小明做了选择4
  8. 小明做了判断0
  9. 小明做了判断1
  10. 小明做了判断2
  11. 小明做了判断3
  12. 小明做了判断4
  13. 小明做了判断5
  14. 小明做了判断6
  15. 小明做了判断7
  16. 小明做了判断8
  17. 小明做了判断9

代码如下

  1. package com.ab.xm.tools;
  2. import com.ab.xm.Person;
  3. import com.ab.xm.edu.School;
  4. public class Bike{
  5. // double price;
  6. // String color;
  7. // String brand;
  8. // String username;
  9. private double price;
  10. private String color;
  11. private String brand;
  12. private String username;
  13. public Bike() {
  14. }
  15. // public Bike(double price, String brand, String color) {
  16. // this.price = price;
  17. // this.color = color;
  18. // this.brand = brand;
  19. // }
  20. public void setPrice(double price) {
  21. this.price = price;
  22. }
  23. public double getPrice() {
  24. return this.price;
  25. }
  26. public void setBrand(String brand) {
  27. this.brand = brand;
  28. }
  29. public String getBrand() {
  30. return brand;
  31. }
  32. public void setColor(String color) {
  33. this.color = color;
  34. }
  35. public String getColor() {
  36. return color;
  37. }
  38. public void gotoschool(Person person, School school) {
  39. // School school = new School();
  40. System.out.println(
  41. person.getName()
  42. + "骑着一辆价值为"
  43. + price
  44. + brand
  45. + color
  46. + ",去"
  47. + school.getAddress()
  48. + school.getName()
  49. + "考试,"
  50. );
  51. // public void gotoschool(String username, School school) {
  52. // System.out.println(username
  53. // + "骑着一辆价值为"
  54. // + price
  55. // + brand
  56. // + color
  57. // + ",去"
  58. // + school.address
  59. // + school.name
  60. // + "考试,"
  61. // );
  62. }
  63. }
  1. package com.ab.xm;
  2. import com.ab.xm.edu.School;
  3. import com.ab.xm.tools.Bike;
  4. import com.ab.xm.Person;
  5. import com.ab.xm.edu.Paper;
  6. // import com.ab.xm.edu.*;
  7. // import com.ab.xm.tools.*;
  8. public class Forobject{
  9. public static void main(String[] args) {
  10. // Person p = new Person("小明", 15, "天润城十六街区");
  11. // Bike bike = new Bike(1880, "ofo", "小黄车");
  12. // Paper paper = new Paper(5, 10);
  13. Person person = new Person();
  14. person.setAge(15);
  15. person.setName("小明");
  16. person.setAddress("天润城十六街区");
  17. School school = new School();
  18. school.setName("浦口外国语中学");
  19. school.setAddress("长江路199号");
  20. Paper paper = new Paper();
  21. paper.setChoice(5);
  22. paper.setJuge(10);
  23. Bike bike = new Bike();
  24. bike.setPrice(1880);
  25. bike.setBrand("ofo");
  26. bike.setColor("小黄车");
  27. person.goschool(bike,school);
  28. person.goexam(paper);
  29. // School school = new School("浦口外国语中学", "长江路199号");
  30. // p.goschool(bike, school);
  31. // p.goexam(paper);
  32. // System.out.println();
  33. // }
  34. }
  35. }
  1. package com.ab.xm.edu;
  2. import com.ab.xm.Person;
  3. import com.ab.xm.tools.Bike;
  4. public class Paper{
  5. // int choice;
  6. // int juge;
  7. private int choice;
  8. private int juge;
  9. public Paper() {
  10. }
  11. public void setChoice(int choice) {
  12. this.choice = choice;
  13. }
  14. public int getChoice() {
  15. return choice;
  16. }
  17. public void setJuge(int juge) {
  18. this.juge = juge;
  19. }
  20. public int getJuge() {
  21. return juge;
  22. }
  23. // public Paper(int choice, int juge) {
  24. // this.choice = choice;
  25. // this.juge = juge;
  26. // }
  27. public void exam(Person person) {
  28. for(int i = 0; i < choice; i++) {
  29. System.out.println(person.getName() + "做了" + "选择" + i);
  30. }
  31. for(int i = 0; i < juge; i++) {
  32. System.out.println(person.getName() + "做了" + "判断" + i);
  33. }
  34. // public void exam(Person person) {
  35. // for(int i = 0; i < choice; i++) {
  36. // System.out.println(person.name + "做了" + "选择" + i);
  37. // }
  38. // for(int i = 0; i < juge; i++) {
  39. // System.out.println(person.name + "做了" + "判断" + i);
  40. // }
  41. }
  42. }
  1. package com.ab.xm;
  2. import com.ab.xm.edu.School;
  3. import com.ab.xm.tools.Bike;
  4. import com.ab.xm.edu.Paper;
  5. public class Person{
  6. // String name;
  7. // int age;
  8. // String address;
  9. // School school;
  10. // Bike bike;
  11. private String name;
  12. private int age;
  13. private String address;
  14. private School school;
  15. private Bike bike;
  16. public Person() {
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. public String getName() {
  22. return name;
  23. }
  24. public void setAddress(String address) {
  25. this.address = address;
  26. }
  27. public String getAddress() {
  28. return address;
  29. }
  30. public void setAge(int age) {
  31. this.age = age;
  32. }
  33. public int getAge() {
  34. return age;
  35. }
  36. public Person(String name, int age, String address) {
  37. this.name = name;
  38. this.age = age;
  39. this.address = address;
  40. }
  41. // public Person(String name, int age, String address) {
  42. // this.name = name;
  43. // this.age = age;
  44. // this.address = address;
  45. // }
  46. public void goschool(Bike bike, School school){
  47. bike.gotoschool(this, school);
  48. }
  49. public void goexam(Paper paper){
  50. paper.exam(this);
  51. }
  52. }
  1. package com.ab.xm.edu;
  2. public class School{
  3. // String name;
  4. // String address;
  5. private String name;
  6. private String address;
  7. public School(){
  8. }
  9. public void setName(String name) {
  10. this.name = name;
  11. }
  12. public String getName() {
  13. return name;
  14. }
  15. public void setAddress(String address) {
  16. this.address = address;
  17. }
  18. public String getAddress() {
  19. return address;
  20. }
  21. // public School(String name, String address) {
  22. // this.name = name;
  23. // this.address = address;
  24. // }
  25. }

编译用 javac -d .  -encoding utf-8 *.java (注意,-d 后面的 “ . ”,前后各空一位)

 -d <目录>                    指定放置生成的类文件的位置

执行用 java -classpath .; classes com.ab.xm.Forobject (注意,-classpath .;-----这里,空一格再英文 点 )

转载于:https://my.oschina.net/allsmallpig/blog/1046803

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/237694
推荐阅读
  

闽ICP备14008679号