`
starbhhc
  • 浏览: 632692 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

Java面向对象小结(

    博客分类:
  • java
阅读更多
编译生成包
如果在程序Test.java中定义了包p1
编译时 javac -d . Test.java 在当前目录下建立子目录p1,将生成的class文件放在p1下
(.可换成所需目录)

多态性:
子类的对象可以替代父类的对象使用,一个引用类型变量可以引用其声明类型的对象,也可以引用其声明类型的子类的对象,如:
Person p=new Student(); //Student是Person的子类
System.out.println(p.getInfo()); //调用的是子类重写的getInfo方法(虚方法调用)
如果子类没有重写这个方法,则根据继承,会调用父类的该方法.

如果一个引用类型变量声明为父类的类型,但实际引用的是子类对象,那么该变量就不能再访问子类中添加的属性和方法,如:
Student m= new Student();
m.setSchool("pku"); //合法
Person e = new Student();
e.setSchool("pku"); //非法

方法声明的参数类型为父类类型,可以使用子类的对象作为实参调用该方法,不能是非子类的调用;
如:
public class Test{
public void show(Person p){
  System.out.println(p.getInfo());
}
public static void main(String[] args){
  Test t=new Test();
  Person p=new Person();
  t.show(p);
  Student s=new Student();
  t.show(s);//合法,调用子类的getInfo()方法;
}
}



对象造型(Casting)
子类到父类的类型转换自动进行:
Person p=new Student();
在多态情况下,父类到子类的类型转换必须强制类型转换实现:
Person p1=new Student();
Student s1=(Student)p1;//合法
Person p2=new Person();
Student s2=(Student)p2;//非法
无继承关系引用类型间转换是非法的:
String s="Hello,World!";
Person p=(Person)s;//非法



instanceof运算符
用于检测一个对象的真实类型:
if(s instanceof Person){ //如果s是Person的类型,返回值为true;
Student stu=(Student)s;
}



协变返回类型
重写方法时修改其返回值的类型,但必须是重写前方法返回值类型的子类或实现类类型:
class A{
public Person getAssistor(){
  Person p=new Person();
  //---
  return p;
}
}
class B extends A{
public Student getAssistor(){
  Student s=new Student();
  //---
  return s;
}
}



在构造方法的第一行使用关键字this调用其它(重载的)构造方法:
public class Person{
private String name;
private int age;
public Person(String name,int age){
  this.name = name;
  this.age = age;
}
public Person(String name){
  this(name,18); 
}
public Person(int age){
  this("Anonymous",age);
}
}
super调用其父类的构造方法,super和this调用构造方法时只能用其中一个(因为两个都要求是在构造方法的第一行!!)



静态导入
用于在一个类中导入其他类或接口中的static成员
import static java.lang.Math.*;
public class StaticTest
{
public static void main(String[] args){
  double d=sin(PI*0.45); //double d=Math.sin(Math.PI*0.45);
  System.out.println(d);
}
}

Singleton设计模式(任何时候生成的对象只有一个)
构造方法为private,通过静态方法去调用该构造方法
public class Single{
private String name;
private static Single onlyone = new Single();
private Single(){
}
public void setName(String name){
  this.name = name;
}
public String getName(){
  return name;
}
public static Single getSingle() {
  return onlyone;
}
}
public class TestSingle{
public static void m1(){
  Single  s2 = Single.getSingle();
  System.out.println(s2.getName());
}
public static void main(String args[]) {
  // Single s1=new Single();不允许直接使用私有的方法
  Single  s1 = Single.getSingle();//s1与s2生成的对象都是同一个
  s1.setName("Tom");
  m1();  
}
}
分享到:
评论

相关推荐

    java面向对象编程总结

    中信软件教育培训机构高级讲师蔡老师的面向对象编程总结,内容精简!

    Java面向对象重要概念小结.docx

    Java面向对象重要概念小结Java面向对象重要概念小结Java面向对象重要概念小结Java面向对象重要概念小结

    《面向对象编程与设计(Java)》课后作业及参考解答.pdf

    1/7 页 《面向对象编程与设计(Java) 》课后作业及参考解答 1.1.1 第一周 课程(9 月 4 日)的课后作业及参考解答 1、 请用 Java 程序示例说明什么是面向过程的程序设计方法、什么是面向对象的程序 设计方法?...

    完成Java面向对象程序设计实验课的心得体会(1).doc

    完成Java面向对象程序设计实验课的心得体会 Java面向对象程序设计实验课的心得体会 经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中...

    面向对象小结

    java语法个人学习的一个小总结,个人心得,分享日常学习的java

    Java学习代码实例 JAVA基础,JAVA面向对象,JAVA高级.rar

    小结 Path的主要功能是设置JDK的可执行命令 classpath主要是在执行时候起作用,告诉JVM类的保存路径,一般设置成“.” 【注意】classpath只在java命令的时候起作用,而对于javac不起任何作用 2.简单JAVA程序 使用...

    完成Java面向对象程序设计实验课的心得体会.doc

    Java面向对象程序设计实验课的心得体会 经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到 能够自主运用。...

    Java基础知识小结

    1. Java基础 1.1 getPath()、getAbsolutePath()、getCanonicalPath()的区别 . . . . . ....1.2 file的getPath getAbsolutePath和...1.12 面向对象设计61点经验原则 . . . . . . . . . . . . . . . . . . . . . 37

    第05章 面向对象(下) 02 继承小结

    第05章 面向对象(下) 02 继承小结

    java面向对象的六原则一法则小结

    本篇文章主要对java面向对象的六原则一法则进行简要说明,具有一定的参考价值,下面跟着小编一起来看下吧

    Java语言与面向对象与程序设计.rar

    第1章 面向对象软件开发概述MSCBSC 移动通信论坛4o&D'f:G:\ P&M,z 1.1 面向对象问题求解的提出0@'}#j3L1a4y(v1Y'E8D 1.2 面向对象问题求解概述 6X2G/X+R;e.A$i.W | 国内领先的通信技术论坛1.3 对象、类与实体 8S2h,}...

    JAVA清华大学教程

    ★ 第三讲 Java语言中的面向对象特性 ◇课前索引 ◇3.1 面向对象技术基础 ◇3.2 Java语言的面向对象特性 ◇本讲小结 ◇课后习题 ★ 第四讲 Java的例外处理和I/O流 ◇课前索引 ◇4.1 什么是例外 ◇4.2 例外...

    清华大学JAVA教程

    这是清华大学的一套JAVA教程,包括详尽的例子、课后习题与解答、相关计算机英语词汇,就课程...同时Java语言是一门面向对象的语言,通过学习可以掌握用面向对象进行编程的思想和实践,使学生成为一名合格的Java程序员。

    JAVA 清华大学 教程

    ★ 第三讲 Java语言中的面向对象特性 ◇课前索引 ◇3.1 面向对象技术基础 ◇3.2 Java语言的面向对象特性 ◇本讲小结 ◇课后习题 ★ 第四讲 Java的例外处理和I/O流 ◇课前索引 ◇4.1 什么是例外 ◇4.2 例外...

    面向对象程序设计与实践-Java抽象类和接口[33页].pptx

    01 简易公司人事管理 案例描述 案例分析 关联知识 案例实现 案例小结 案例拓展 面向对象程序设计与实践-Java抽象类和接口[33页]全文共33页,当前为第4页。 5-1案例描述 现有一软件公司,公司中有开发人员若干、项目...

    实验5 JAVA常用类.doc

    本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)实验报告,基础篇有JAVA环境搭建、Java语言基础、方法和数组、面向对象基础、Java常用类、继承与接口、成员访问控制与异常、JavaFX程序设计、Java...

    面向对象设计 PPT

    主要讲的ssi框架,MVC对于我们来说,已经不陌生了,它起源于20世纪80年代针对smalltalk语言的一种软件设计模式,...由于最近用了一次SSI框架,因此本文主要是对Strtus2、Spring、iBatis三个开源的MVC框架进行一个小结。

    Java编程语言详细教程

    ★ 第三讲 Java语言中的面向对象特性 ◇课前索引 ◇3.1 面向对象技术基础 ◇3.2 Java语言的面向对象特性 ◇本讲小结 ◇课后习题 ★ 第四讲 Java的例外处理和I/O流 ◇课前索引 ◇4.1 什么是例外 ◇4.2 例外...

    面向对象技术与UML课件及源代码-by 南邮-陈杨

    本书为中南大学精品教材立项项目,分为上下两篇共21章,涵盖了面向对象技术中Java开发环境配置、程序设计基础、面向对象原理以及UML的知识。本书使用的开发环境是JDK 1.6+Eclipse 3.3+Rational Rose 2003,逐步引领...

Global site tag (gtag.js) - Google Analytics