类的封装:
1,java中,对象就是一个封装体。封装是把对象的属性和服务结合成一个独立的的单位。并尽可能隐藏对象的内部细节(尤其是私有数据)
2,目的:使对象以外的部分不能随意存取对象的内部数据(如属性),从而使软件错误能够局部化,减少差错和排错的难度。
3,简单来说,“隐藏属性、方法或实现细节的过程”称为——封装。
4,封装的特性:
4.1设置对象中的成员变量和方法的访问权限(public,private,protected)
4.2提供一个统一供其他类引用的接口,比如public 方法
4.3其他对象不能直接修改本对象的私有属性和方法
4.4包:类空间的划分单位
Java继承:
继承是为了让代码重复使用,提高效率,在此基础上衍生出更多的新类。继承是面向对象编程的特点,没有继承就不是面向对象编程,而是面向过程了。Java提供了单一继承,通过接口可以实现多重继承。
在Java中,被继承的类叫超类(superclass)或父类,继承超类的类叫子类(subclass)。因此,子类是超类的一个功能上的扩展,它继承了超类定义的所有属性和方法,并且还可以添加特有功能方法。
public class Father{ public String name; 父亲的名字 public int age; 父亲的年龄 public String job; 父亲的工作 } public class Son extends Father{ public String hobby; 儿子的爱好,这个属性是儿子特有的 }
当我们给Son这个类创建对象时,它不仅有自己的hobby属性,还有Father中的三个属性。
继承父类时,还可以继承父类的方法。
public class Father{ public void play(){ System.out.println("我是父亲!"); } } public class Son extends Father(){ @Override ——覆盖(重写)父类的方法 public void play(){ super.play(); ——用super可以用父类的方法 System.out.println("我是儿子!"); ——也可以编写自己的方法 } public void play(String name){ ——重载play()的方法 System.out.println("play:"+name); } public int play(int nub){ ——这也是一个重载方法 return nub; } }
子类继承父类时,子类就有机会重写父类提供的方法(final方法除外),重写要注意:
1、参数表必须和被重写方法的参数列表完全一致; 2、返回类型要和被重写方法的返回类型或者其子类型一致; 3、访问级别限制符不能比被重写的方法强,可以比他弱; 4、重写方法不能抛出新的检查异常或者比被重写方法声明的检查异常更广泛的异常; 5、不能重写final,static的方法 6、重写就是正在实现一个继承的方法
方法重载允许在类中使用相同的方法名称,但是具有不同的参数,应注意一下几点:
1、被重载的方法必须改变参数列表 2、被重载的方法可以改变返回类型 3、被重载的方法可以改变访问修饰符 4、被重载的方法可以声明新的或更广泛的异常 5、方法能够在同一个类中或者在子类中被重载
多态:
多态是面向对象的重要特性,简单来说就是“一个接口,多种实现”。多态是同一个行为具有不同的表现形式或形态的能力。
我们常说的宠物,它就有多种表现形式,比如:狗、猫等等。现在我们有一个Pet(宠物)的类,它有一个子类Dog(狗),我们在创建对象可以:Pet pet = new Pet();也可以Pet pet = new Dog();两种方式都可以创建pet对象,也就是说pet既可以是一个普通的Pet对象,也可以是Dog对象。所以可以看出同一个Pet可以有不同的表现形式,这就是多态。
但是要注意的是,在创建 Pet pet = new Dog();时,pet不能访问Dog的私有属性和方法,这是因为在编译时,pet是一个Pet类型,只能访问Pet类中的属性和方法。就是说,在编译时,pet是一个Pet类,而不是Dog类。想要让其变成Dog类的话,需要强制转换:Dog dog = (Dog)pet;这时,dog就可以访问Dog类中的私有属性和方法了。
还要注意的是:方法没有多态的说法,严格说多态是类的特性。但是也有对方法说多态的,比如前面提到的方法覆盖称为动态多态,是一个运行时问题;方法重载称为静态多态, 是一个编译时问题。
相关推荐
java笔记java笔记java笔记java笔记java笔记java笔记java笔记
### Java基础知识概述 #### 1. 前言 Java是一种广泛使用的面向对象的编程语言,因其跨平台性、安全性和强大的功能而受到欢迎。Java的设计理念是“一次编写,到处运行”,这意味着编写的Java程序可以在任何安装了...
Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习笔记Java学习...
【Java笔记桌面程序】 在IT领域,开发个人定制的桌面应用程序是解决特定需求的有效方法。本项目名为"Java笔记桌面程序",它是由一个热衷于编程的开发者为解决其所在公司无法使用网络笔记客户端的问题而自创的。这个...
【标题】"java读书笔记笔记笔记笔记笔记笔记" 暗示了这是一份关于Java编程语言的学习笔记,可能包含了作者在阅读Java相关书籍时所做的重要记录和理解。笔记通常涵盖了语言的基础概念、核心特性、类与对象、内存管理...
这份"非常好的java笔记"无疑是初学者踏入这个领域的宝贵资源。笔记由培训班的专业老师编写,内容详细且全面,旨在帮助初学者系统地学习和理解Java的基础知识。 首先,Java基础部分会涵盖变量、数据类型、运算符、...
【宋红康java笔记】是一份综合性的Java学习资料,由知名编程教育者宋红康编撰。这份压缩包文件包含了大量的Java编程知识点,旨在帮助初学者和有经验的开发者深入理解和掌握Java语言的核心概念与高级特性。以下是根据...
之前上传了JAVA笔记1 那么这次是JAVA笔记2 衔接上一次的
专业的Java笔记可能会涉及这些内容,帮助学习者掌握Java的最新发展。 遗憾的是,由于【部分内容】部分不包含实际的笔记内容,无法进一步提供具体的编程示例和深入的解释。如果要学习Java,最好的方式是从学习Java的...
《狂神说Java笔记资料》是一份全面涵盖Java开发基础知识的文档集,旨在帮助学习者系统地掌握Java编程。这份笔记包含多个章节,每个章节都深入讲解了一个特定的主题,覆盖了从初学者到进阶开发者必备的知识点。 1. *...
"Java超强笔记"正是一份专为新手准备的学习资源,它全面涵盖了从Java环境的搭建到软件设计的各种概念,旨在提供一个易读且系统的学习路径。 首先,笔记可能会从Java的起源和发展开始介绍,让你了解这门语言的历史...
【Java笔记内容概览】 1. **基础语法**:涵盖变量、数据类型、运算符、流程控制(条件语句、循环语句)、数组、字符串等基础知识。 2. **面向对象**:讲解类、对象、封装、继承、多态等核心概念,以及构造函数、...
### 韩顺平编写的Java学习笔记概览 #### Java平台分类与运行机制 - **J2SE(Java 2 Platform, Standard Edition)**: 标准版Java开发平台,适用于桌面应用程序开发。 - **J2EE(Java 2 Platform, Enterprise ...
全套java笔记整理,侧边栏目录结构方便查看,纯手工整理。达内笔记整理。 已整理成带侧边栏目录的网页结构,方便复习大纲和跳转查看。大部分都带有笔记代码。 (默认设置为深珊瑚蓝色调,不喜欢可以把配置文件里的...
2020-4-6 java笔记 ---内部类 2020-4-6 java笔记 ---异常 2020-4-6 java笔记 --多线程 2020-4-8 java笔记 String类 2020-4-9 java 比较器 2020-4-10 java笔记 枚举类 2020-4-10 java 注解(Annotation) 2020-4-11 ...
2. 集合:在13集合.md中,详细讲解了Java集合框架,包括ArrayList、LinkedList、HashSet、HashMap等基本集合类的使用,以及List、Set、Map接口的特性。此外,还可能涉及泛型的概念,泛型(14泛型.md)提高了代码的...
2. **面向对象编程**:深入讲解Java的面向对象特性,包括类、对象、封装、继承、多态等概念。这部分内容是Java的核心,有助于理解如何构建可维护和可扩展的软件系统。 3. **集合框架**:详细解释ArrayList、...
详细的描述了java的基本知识,配合看java视频更好了。 笔记中有集合,泛型,线程,的详细案例,还有java.net的资料
java笔记java笔记java笔记java笔记java笔记java笔记java笔记java笔记
【标题】"韩顺平java笔记完整版.zip(无笔记,只是代码)"指的是一个包含韩顺平老师Java教学视频中所有代码的压缩文件。这个压缩包不包含笔记,而是专注于提供实际的编程示例,使得学习者可以直接查看和学习Java编程...