05.面向对象(二)【单例】【继承】【多态】【接口】【final】【内部类】
来源:互联网 发布:java 验证身份证 编辑:程序博客网 时间:2024/06/16 07:45
1.方案-建立数组工具类,并在另一个类中调用
class ArrayToolDemo {/*保证程序的独立运行。*/public static void main(String[] args) {int[] arr = {4,8,2,9,72,6};//调用ArrayTool工具类方法,获取最值int max = ArrayTool.getMax(arr);System.out.println("max="+max);//调用方法,将数组转成字符串String str = ArrayTool.arrayToString(arr);System.out.println(str);//调用选择排序方法ArrayTool.selectSort(arr);System.out.println(ArrayTool.arrayToString(arr));}
2.单例设计模式
代码如下:
//饿汉式public class SingleDemo {//在本类中创建实例对象private static SingleDemo singleDemo = new SingleDemo();//私有化构造函数private SingleDemo(){}//提供方法供外界访问对象public static SingleDemo getInstance() {return singleDemo;}}
//懒汉式public class SingleDemo1 {//先不创建对象private static SingleDemo1 singleDemo = null;//私有化构造函数private SingleDemo1(){}//提供方法供外界访问对象,调用方法时才创建对象public static SingleDemo1 getInstance() {if(singleDemo == null)singleDemo = new SingleDemo1();return singleDemo;}}
3.继承(extends)
不用自己写父类中已有的代码。
继承时使用extends关键字来实现子类继承父类。
简单的代码示例:
class Person{String name;int age;}class Student extends/*继承*/ Person{//String name;//子类继承父类的内容,可以直接使用父类中的name和age//int age;void study(){System.out.println(name+"...student study.."+age);}}class Worker extends Person{//String name;//int age;void work(){System.out.println(name+"worker work"+age);}}class ExtendsDemo {public static void main(String[] args) {Student s = new Student();s.name= "zhangsan";s.age = 22;s.study();}}
来体现。
class Fu{Fu(){System.out.println("fu run");}}class Zi extends Fu{Zi(){//super();//隐含调用了父类的空参数的构造函数System.out.println("zi run");}}
4.多态
多态在代码中的体现:父类或者接口指向其子类的对象。
(1)多态的好处和弊端:
(2)多态—转型
可以结合代码说明:
abstract class Animal{code...}class Dog extends Animal{code...}class Cat extends Animal{code...}class AnimalDemo {public static void main(String[] args) {Animal a = new Cat();//向上转型Cat c = (Cat)a;//向下转型Animal a1 = new Dog();Cat c1 = (Cat)a1;//ClassCastException//转化异常,猫和狗不存在继承关系。}}
转型分为:
(3)多态成员的特点:
5.接口
例化。否则,这个子类就是一个抽象类。
6.final关键字
写法规范:常量所有字母都大写,多个单词,中间用“_”连接。
7.内部类
内部类,其实相当于一种封装。一般用于类的设计。
class Outer{int num = 3;class Inner{int num = 4;void show(){int num = 5;System.out.println(num);//打印5System.out.println(this.num);//打印4System.out.println(Outer.this.num);//打印3}}void method(){new Inner().show();}}
(3)内部类-局部内部类
且看看一下代码说明:
class Outer{int num = 3;void method(){final int x = 9; class Inner {void show() {System.out.println("show..."+num);System.out.println("show..."+x);//从内部类中访问本地变量x,x需要被声明为final //x为局部变量,生命周期较短,出栈后,对象无法访问。} } Inner in = new Inner(); in.show();}}class InnerClassDemo3 {public static void main(String[] args) {new Outer().method();}}
(4)内部类-匿名内部类
public void method(){//new Inner().show();new Demo(){ //匿名内部类void show(){System.out.println("show"+num);}}.show(); }}
- 05.面向对象(二)【单例】【继承】【多态】【接口】【final】【内部类】
- 黑马程序员——java-面向对象二(继承,多态,抽象,接口,包,内部类)
- 面向对象(二)(static,.final,抽象类,接口,内部类)
- 黑马程序员_面向对象二(继承,多态,抽象类abstract,接口Interface,内部类)
- 黑马程序员——Java基础---面向对象(封装、继承、单例、抽象类、接口、内部类)
- 黑马程序员-Java的面向对象(抽象类、接口、内部类和继承、组合、多态)
- 黑马程序员_面向对象(二)_继承、多态、内部类
- 黑马程序员_第五天 面向对象(二)_继承、多态、内部类
- 黑马程序员_面向对象(二)_继承、多态、内部类
- 黑马程序员_面向对象(继承、多态、内部类)
- 黑马程序员 Java面向对象(继承,抽象类,接口,多态,内部类)
- 黑马程序员_面向对象2_(继承、多态、抽象类abstract、接口interface、内部类)
- 黑马程序员—面向对象(static,封装,继承,多态,内部类,抽象类,接口)总结
- Java基础-->面向对象<继承,内部类,多态,包,抽象与接口>
- Java基础---面向对象(继承、多态、抽象类、接口、内部类)
- Java-面向对象(继承、封装、多态、内部类、异常)
- 黑马程序员_面向对象:继承、多态、内部类
- 黑马程序员-面向对象 继承,final,接口
- properties文件中的unicode编码与本地编码互相转换
- 02.运算符,程序流程控制…
- 03.函数,数组
- 如何获取到css文件里的相关属性
- 04.面向对象(一)【概念】【封装】
- 05.面向对象(二)【单例】【继承】【多态】【接口】【final】【内部类】
- Box2D C++ tutorials - Buoyancy
- 06.面向对象(三)【异常】【包】【多线程】
- 07.【String类】【StringBuffer】【StringBuilder】
- 获得WINDOWS下所有用户的信息
- 个人信用报告今起可上网查询
- 使用C/C++实现对字符串的反转(递归和非递归)
- js 转大写
- Linux文件系统(二)-为仁由己