面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)
类与类之间的关系:(常用:关联关系(最弱的关系))
![面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图) 面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzI0Ni8wZWE4NWYyOWQyYzBkMjdlYWRjNjQ2YTMwYjU3MmIxZS5KUEVH)
![面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图) 面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzg3NC8zYjFmYTcwYmI2ZmU0MzBlMTliYTliMTllMzNmZjQyMi5wbmc=)
注意:如果一个类的属性需要另一个类的属性进行解释,那么可在当前类中声明另一个类的类型属性到当前类中
------------------------------------------------------------------------------------------------------------------
权限修饰符:(用来限定对象对该类成员的访问权限)
![面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图) 面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzgwMS8zMGQwN2YyY2UxYTQxZmQ2ZTBhMzViNDUxMTA5MjBiOS5wbmc=)
● private(私有的):只能在当前类中使用
● 缺省(默认): 只能在当前类和当前类所在同一个包下使用
● protected(受保护的):只能在当前类和当前类所在同一个包下及当前类的子类中使用
● 必须有继承关系
● 父类是大范围的数据类型,子类是小范围的数据类型
![面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图) 面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzE1OS85OTM2ZjczN2IxNWEzOGE4NGMyYTcwNjZlOGY3MmE5Ny5wbmc=)
![面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图) 面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzUyMi83YzE1M2UxMTU0MTkwMmUzYjFjMTY2MWViMmQ2YzU5YS5wbmc=)
------------------------------------------------------------------------------------------------------------------
==:
● 基本数据类型:比较的是两边的值是否相等。但值两边的类型可以不相同
● 引用数据类型:比较的是两边的内存地址
------------------------------------------------------------------------------------------------------------------
equals:(obj1.equals(obj2))
● 比较的是两个引用数据类型“实际的值”是否相等
● 特例:File、String、Date及包装类来说,是比较类型及内容而不考虑引用的是否是同一个对象
● 原因:在这些类中重写了Object类的equals()方法
注意:在Object类中比较的还是两个引用数据类型的内存地址,如果想比较两个引用数据类型的“实际值”是否相等,需在引用数据类型所在的类中,重写Object类的equals方法。自定义的引用数据类型,需人为重写equals方法
------------------------------------------------------------------------------------------------------------------
![面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图) 面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzg4Mi83N2QwZGNmNGMyYjZhNTUzNjgxM2JkMDM1ODEyYTAxYS5wbmc=)
![面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图) 面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzgxMi9lZDlmZDVjN2UxMzg4ODNhMWI1MWQ2OTFiMmQwMzUxYy5wbmc=)
![面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图) 面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzM0Mi8zM2RhMGQ5ODllMjY1NTA4ZTAzMDg5ZWJiMDJjYTlmNi5wbmc=)
------------------------------------------------------------------------------------------------------------------
单例设计模式:(Singleton:只在整个工程中在类的对象有且只有一个)
饿汉式:不管你使用不使用我都给你创建好
![面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图) 面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYzOC8yZDM2MGU4MWFiM2M0NjcwYmEwMTViNDIyNWVkYzQwZS5wbmc=)
懒汉式:当你需要使用的时候我再给你创建
![面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图) 面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ3NS8xZWIzMzkxYjE4YTcxMjRkZTI4YTM5NGNkNjM5ZjkxMy5wbmc=)
注意:懒汉式还存在线程安全问题,多线程时,可修复
------------------------------------------------------------------------------------------------------------------
JavaBean:(也叫java类,一种Java语言写成的可重用组件)
![面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图) 面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkxOS8zMjc2ZDFjYWY4MGMxZGM1ZTUwY2IzYThkOWE5ZTE4Ny5wbmc=)
● 类是公共的
● 有一个无参的公共的构造器
● 有属性,且有对应的get、set方法
注意:用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变
------------------------------------------------------------------------------------------------------------------
UML类图:
![面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图) 面向对象——OOP(四)(类与类的关系、权限修饰符、==与equals、单例设计模式、UML类图)](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQwMS8xM2E3ZjM3NWU4ZDdlZDBmN2ZhMTM1ODBjM2Y5YjgwOS5wbmc=)
● +:表示public类型
● -:表示private类型
● #:表示protected类型
● 方法的写法:类型 方法名(参数名: 参数类型):返回值类型
● java.lang:Java语言的核心类,提供常用功能。如String、Math、Integer、System和Thread
● java.net:执行与网络相关操作的类和接口
● java.io:提供多种输入/输出功能的类
● java.util:实用工具类,如定义系统特性、接口的集合框架类、使用与日期日历相关的函数
● java.text:java格式化相关的类
● java.sql:java进行JDBC数据库编程的相关类、接口
● java.awt:构成抽象窗口工具集的多个类,这些类被用来构建和管理应用程序的图形用户界面
● java.applet:包含applet运行所需的一些类
------------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知
注意:如果一个类的属性需要另一个类的属性进行解释,那么可在当前类中声明另一个类的类型属性到当前类中
------------------------------------------------------------------------------------------------------------------
权限修饰符:(用来限定对象对该类成员的访问权限)
● private(私有的):只能在当前类中使用
● 缺省(默认): 只能在当前类和当前类所在同一个包下使用
● protected(受保护的):只能在当前类和当前类所在同一个包下及当前类的子类中使用
● public(公共的): 任何地方都可以使用
------------------------------------------------------------------------------------------------------------------
toString( ):
------------------------------------------------------------------------------------------------------------------
数据类型转换:
基本数据类型:(强转)
● 强转前的数据类型必须和强转后的数据类型相兼容
● 强转前的数据类型的范围大于强转后的数据类型的范围
基本数据类型:(自动类型转换)
● 转换前和转换后的数据类型相兼容
● 转换前的数据类型的范围小于转换后的数据类型的范围
● 必须有继承关系
● 父类是大范围的数据类型,子类是小范围的数据类型
------------------------------------------------------------------------------------------------------------------
==:
● 基本数据类型:比较的是两边的值是否相等。但值两边的类型可以不相同
● 引用数据类型:比较的是两边的内存地址
------------------------------------------------------------------------------------------------------------------
equals:(obj1.equals(obj2))
● 比较的是两个引用数据类型“实际的值”是否相等
● 特例:File、String、Date及包装类来说,是比较类型及内容而不考虑引用的是否是同一个对象
● 原因:在这些类中重写了Object类的equals()方法
注意:在Object类中比较的还是两个引用数据类型的内存地址,如果想比较两个引用数据类型的“实际值”是否相等,需在引用数据类型所在的类中,重写Object类的equals方法。自定义的引用数据类型,需人为重写equals方法
------------------------------------------------------------------------------------------------------------------
包装类:(Wrapper:针对八种基本定义相应的引用类型)
● 有了类的特点,就可以调用类中的方法。
------------------------------------------------------------------------------------------------------------------
单例设计模式:(Singleton:只在整个工程中在类的对象有且只有一个)
饿汉式:不管你使用不使用我都给你创建好
懒汉式:当你需要使用的时候我再给你创建
注意:懒汉式还存在线程安全问题,多线程时,可修复
------------------------------------------------------------------------------------------------------------------
JavaBean:(也叫java类,一种Java语言写成的可重用组件)
● 类是公共的
● 有一个无参的公共的构造器
● 有属性,且有对应的get、set方法
注意:用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变
------------------------------------------------------------------------------------------------------------------
UML类图:
● +:表示public类型
● -:表示private类型
● #:表示protected类型
● 方法的写法:类型 方法名(参数名: 参数类型):返回值类型
------------------------------------------------------------------------------------------------------------------
面向对象内容总结:(面向对象特性,是java学习的核心、重头戏)
------------------------------------------------------------------------------------------------------------------
● java.lang:Java语言的核心类,提供常用功能。如String、Math、Integer、System和Thread
● java.net:执行与网络相关操作的类和接口
● java.io:提供多种输入/输出功能的类
● java.util:实用工具类,如定义系统特性、接口的集合框架类、使用与日期日历相关的函数
● java.text:java格式化相关的类
● java.sql:java进行JDBC数据库编程的相关类、接口
● java.awt:构成抽象窗口工具集的多个类,这些类被用来构建和管理应用程序的图形用户界面
● java.applet:包含applet运行所需的一些类
------------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知