首页 > 编程语言 >Java三大特性

Java三大特性

时间:2022-09-25 22:58:44浏览次数:51  
标签:Java name 特性 访问 Student 属性 public 三大 String

三大特性

面向对象三大特性:封装、继承、多态

封装:

  • 将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐
    藏信息的操作和访问

继承:

  • 子类拥有父类的所有属性和方法(除了private修饰的属性不能拥有),从而实现了实现代码的复

多态:

  • 使用父类引用接受,不同的子类的对象实例,父类引用调用相同的方法,根据子类不同的实例,产生
    不同的结果

封装(数据的隐藏)

在定义一个对象的特性的时候,有必要决定这些特性的可见性,即那些特性对外部是可见的,哪些特性
用于表示内部状态。

通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。

封装的步骤

1.使用private修饰需要封装的成员变量
2.提供一个公开的方法设置或者访问私有的属性
设置:通过set方法,命名格式:set属性名();属性名首字母要大写
访问:通过get方法,命名格式:get属性名();属性名首字母要大写
【演示】

//对象能在类的外部"直接"访问
public class Student{
    public String name;
    public void println(){
        System.out.println(this.name);
    }
}
public class Test{
    public static void main(String[] args){
        Student s = new Student();
        s.name = "tom";
    }
}

在类中一般不会把数据直接暴露在外部的,而使用private(私有)关键字把数据隐藏起来
【演示】

public class Student{
    private String name;
}
public class Test{
    public static void main(String[] args){
        Student s = new Student();
        //编译报错,在类的外部不能直接访问类中的私有成员
        s.name = "tom";
    }
}

如果在类的外部需要访问这些私有属性,那么可以在类中提供对于的get和set方法,以便让用户在类的外部
可以间接的访问到私有属性
【示例】

//set负责给属性赋值
//get负责返回属性的值
public class Student{
    private String name;
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return this.name;
    }
}
public class Test{
    public static void main(String[] args){
        Student s = new Student();
        s.setName("tom");
        System.out.println(s.getName());
    }
}

继承

  1. 继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
  2. 继承关系的俩个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来
    表示。

多态

如: Student继承了Person类

Student s1 = new Student();
Person s2 = new Student();
Object s3 = new Student();

则s1只能调用Student中的方法
而s2除此之外还能调用Person中的方法
(Object是所有类的父类)

标签:Java,name,特性,访问,Student,属性,public,三大,String
From: https://www.cnblogs.com/tanhongwei/p/16729278.html

相关文章

  • 物联网三大特性
    一般认为,物联网具有以下的三大特征:1.全面感知:利用RFID、传感器、二维码等随时随地获取物体的信息。2.可靠传递:通过无线网络与互联网的融合,将物体的信息实时准确地传递给用......
  • Java基础语法 位运算符
    定义结论:1.位运算符操作的都是整型的数据2.<<:在一定范围内,每向左移1位,相当于*23.>>:在一定范围内,每向右移1位,相当于/2packageBasicGrammar.day03;/*运算符......
  • Java8Stream流
    Stream流呢,以前我也有所了解,像一些面试题中也出现过,Java8的新特性,有一块就是这个Stream操作集合,而且在看一些项目中也使用的比较多。但总感觉自己学的一知半解,所以今天打......
  • 《JavaScript高级程序设计》Chapter03学习笔记
    Chapter03JavaScriptLanguageSyntax类C区分大小写,标识符可以字母、下划线(_)、美元符号($)开头语句以分号(;)结尾:虽然不加分号也是被允许的,但会导致性能的降......
  • Java程序运行机制
    Java程序运行机制编译型解释型javac>源文件(.java文件)>java编译器>字节码(.class文件)>类装载器字节码校验器(检查代码是否有错)>解释器>操作系统平台......
  • Java 泛型程序设计
    1.  泛型类publicclassPair<T>{privateTfirst;privateTsecond;publicvoidsetSecond(Tsecond){...}....}2.  泛型方法classArrAl......
  • Java: Iterator/Cursor Patterns
    /***版权所有2022涂聚文有限公司*许可信息查看:*描述:*迭代器模式Iterator/CursorPatterns*历史版本:JDK14.02*2022-09-12创建者geovindu*2022......
  • java帝国的诞生—旷日持久的战争
    C语音帝国:C,C++1972年C诞生特点:贴近硬件,运行极快,效率极高开发:操作系统,编译器,网络系统等枷锁:指针和内存管理1982年C++诞生功能:面向对象以及兼容C成功:图形领域,游......
  • JavaScript权威指南中文-第五版 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1IZ0TCpQdsYR4YT5mQSj_8w点击这里获取提取码 ......
  • 打印九九乘法表,打印金字塔-java
    /***********打印如图金字塔*=i*2-1(竖)空格数=列数-1*/publicclassCirculate{ publicstaticvoidmain(String[]args){ intcount=3; for(inti=......