ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Object类和封装

2022-06-22 17:00:34  阅读:98  来源: 互联网

标签:封装 String Object person public name


Object类

Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。Object类是Java中其他所有类的祖先.

Object类是Java中唯一没有父类的类。其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。

Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类。

函数:

  • toString

  • equals()

 

 

 

 

 

进行判断

 

 

可以给你当作注释用,感觉这个也不能说明什么,注释也没什么用

可以告诉读你代码的人,这是对它父类方法的重写,其实很多代码规范没有为什么,规范就是规范,代码的可读性还是很重要的

编译器可以验证@Override下面的方法名称是否是你父类中所有的,如果没有就会报错

比如当你想要在子类中重写父类的一个方法,但是你把名字打错了,当你写了@Override编译器会提示你,你写的这个方法父类中没有;

但是如果你没有写@Override编译器就会觉得这个是你子类中写的新的方法,并不会报错,到时候你debug还是很麻烦的一件事。

 

 

封装

  用封装来降低耦合

  Room类和Game类都有大量的代码和出口相关

  尤其是Game类中大量使用了Room类的成员变量

  类和类之间的关系称作耦合

  耦合越低越好,保持距离是形成良好代码的关键

 

比如你有一个写好的代码,是否适应于将来的需要(将来只有一种需要就是维护)

增加可扩展性

可以使用封装来降低藕和(类和类直间的关系就是藕和)

藕和呢越低越好

封装是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节

封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性

作用:

彻底消除了传统结构方法中数据与操作分离所带来的种种问题提高了程序的可复用性和可维护性,降低了程序员保持数据与操作内容的负担

对象的数据封装特性还可以把对象的私有数据和公共数据分离开,保护了私有数据,减少了可能的模块间干扰,达到降低程序复杂性、提高可控性的目的

public class Show{
 
public static void show(String str){
 
System.out.println(str);
}
}
 
//上面就是对 System.out.println();的封装。
 
//调用的时候
 
public class Use{
 
public static void main(String[] args){
 
    Show.show("封装");
}
}
System.out.println("封装");

  

1.

复制代码
public static class Person {
String name;
int age;
public void speak(){
System.out.println("我叫:"+name+"今年"+age+"岁");
}
}
public static void main(String[] args) {
Person person = new Person();
person.name="乌拉";
person.age=-12;
person.speak();
}
复制代码

上面的年龄为-18也是会打印出来的在现实生活中明显是不合理的 

 

 

 

 

为了避免出现上述不合理的问题,在设计一个Java类时,应该对成员变量的访问作出一些限定,不允许外界随意访问,这就需要实现类的封装

在定义一个类时,将类中的属性私有化,即使用private关键字来修饰,私有属性只能在它所在类中被访问,如果外界想要访问私有属性,需要提供一些使用public修饰的公有方法,其中包括用于获取属性值的getXxx()方法和设置属性值的setXxx()方法

外部通过get方法调用该属性,所以需要返回值,set方法是外部对该属性赋值,就不需要返回值

 

复制代码
  public String name;
public int age;


public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int a) {
if (a<0||a>200){
System.out.println("你输入的不合法");
}else {
age=a;
}
}

public void speak() {
}
}
class PersonT {
public static void main(String[] args) {
Person person = new Person();
person.setName("乌拉");
person.setAge(-12);
//获取
String name = person.getName();
int age = person.getAge();
System.out.println("我叫:"+name+"今年"+age+"岁");
}
 

标签:封装,String,Object,person,public,name
来源: https://www.cnblogs.com/yuzong/p/16401258.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有