`
starbhhc
  • 浏览: 649492 次
  • 性别: 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 的核心特性,它是一种设计和组织代码的方式,强调将数据和操作数据的方法封装在一起。本文将深入探讨 Java 中面向对象编程的主要概念和机制。 首先,面向对象的思维模式要求我们分析问题,识别...

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

    Java面向对象编程是Java语言的核心特性,它基于三个主要原则:封装、继承和多态。在Java中,面向对象的设计允许我们模拟现实世界中的对象和它们之间的交互,从而提高代码的可读性、可维护性和复用性。下面是对Java...

    java面向对象File (I O)

    ### Java面向对象File I/O详解 #### 概述 在Java中,`File`类是进行文件和目录操作的基础。通过这个类,开发者能够轻松地处理文件系统中的各种任务,如创建、删除文件或目录,读取文件元数据等。本文将深入探讨如何...

    Java面向对象教程

    以上内容只是Java面向对象编程的一小部分,马士兵教授的教程会更深入地探讨这些概念,并结合实例进行讲解,帮助开发者更好地理解和应用面向对象技术。通过学习和实践,你可以掌握创建高效、可维护的Java应用程序的...

    Java类与对象小结

    这篇小结将深入探讨这两个关键概念,以及它们在实际编程中的应用。 首先,类是Java中的蓝图,它定义了一组特性和行为,这些特性和行为共同构成一个特定实体。类可以包含字段(或称为属性),它们代表对象的状态,...

    java面向对象编程(孙卫琴)

    根据给定文件的信息,我们可以提炼出以下几个重要的Java面向对象编程的知识点: ### 一、Java 面向对象编程概述 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它将程序中的数据和操作这些...

    Java的面向对象

    ### Java的面向对象 #### 一、面向对象的基本概念 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它通过“对象”这一基本单元来组织代码,实现软件开发。Java作为一种典型的面向对象语言,其...

    面向对象小结

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

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

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

    Javascript 面向对象编程小结

    这篇博客“JavaScript 面向对象编程小结”可能涵盖了JavaScript中实现OOP的一些核心概念和技巧。 首先,面向对象编程的基础是类与对象。在JavaScript中,虽然没有像Java或C++那样的传统类机制,但是可以通过构造...

    Java个人学习小结

    ### Java个人学习小结 #### Java发展史及重要里程碑 - **起源与发展**: Java 的起源可以追溯到 1992 年,当时的 Sun Microsystems 公司开发了一种名为 Oak 的编程语言,最初是为了家用电器的智能化而设计的。然而...

    JAVA 模块知识小结

    JAVA是广泛使用的面向对象的编程语言,而JAVASE是指Java的标准版,包含了Java开发的核心库,是Java技术的基础。 14. 框架和工具:Hibernate、Ibatis、Struts2、Spring、SpringMVC、XML、JDBC、MVC、MyEclipse、...

    Java基础知识小结

    ### Java基础知识小结 #### 1.1 `getPath()`、`getAbsolutePath()`、`getCanonicalPath()`的区别 在Java中,处理文件路径时经常会用到`getPath()`、`getAbsolutePath()`以及`getCanonicalPath()`这三个方法。它们...

    JS面向对象的程序设计相关知识小结

    虽然JavaScript并不完全遵循传统的面向对象模型,如Java或C++,但它提供了独特的面向对象特性,使其能够实现类似的功能。 首先,理解JavaScript中的对象至关重要。JavaScript对象是一个无序属性的集合,这些属性...

    Python面向对象程序设计示例小结

    在Python编程语言中,面向对象程序设计是一种重要的编程范式,它基于“对象”的概念,将数据和操作数据的方法封装在一起。下面我们将深入探讨Python中的类定义、实例化、继承以及私有变量等关键概念。 1. 类定义: ...

    java课程小结.rar_北京理工大学JAVA课程

    Java课程是计算机科学中至关重要的一个部分,尤其在北京理工大学这样的知名学府,其面向对象编程课程备受关注。这个“java课程小结.rar_北京理工大学JAVA课程”压缩包中包含的“课程小结”文件,很可能是教授精心...

    java语言程序设计 java编程基础入门教程资料 (3)面向对象的编程技术 共29页.pptx

    ### Java语言程序设计:面向对象的编程技术 #### 编程语言的发展历程 计算机编程语言的发展经历了几个重要的阶段,从最初直接由计算机指令组成的机器语言,到更容易理解和记忆的汇编语言,再到高度抽象化的高级...

    java基础小结

    《Java基础小结》 Java,作为一种广泛应用的编程语言,以其跨平台、面向对象的特点深受开发者喜爱。这篇博文和随附的PDF笔记旨在总结Java的基础知识,帮助初学者巩固理解,同时也为有经验的开发者提供回顾参考。 1...

Global site tag (gtag.js) - Google Analytics