`
zyr899
  • 浏览: 23947 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

一个Main Class,巩固java基础

    博客分类:
  • Java
 
阅读更多
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;


public class SubClassMain extends BaseClass implements IInterface{
/*
* 一个java文件中可以有多个pulbic class
*/
public class InnerClass{

}
static class StaticInnerClass{

}
    /*
     * main方法也可以被重载哦
     */
    public static void main(String[] args,int k){
   
    //return 0;
    }
public static void main(String[] args) {

  StringBuffer z = new StringBuffer("a");
  StringBuffer y = new StringBuffer("be");
  /*
   * 对象当做参数传入外部方法时,属于对象引用,方法内对值得修改
   * 一直会影响这个对象
   */
  methodA(z,y);
  System.out.println(z+","+y);
  IInterface ii = new SubClassMain();
  BaseClass a = new SubClassMain();
  SubClassMain d = new SubClassMain();
 
  /*
   * 同一个类中,基类和接口可以使用相同的属性名和方法名,但调用只能声明以接口或者基类调用
   * 否则具有二义性,造成语法错误
   */
  System.out.println("ii.x:"+ii.x+",a.x:"+a.x);

  /*
   * 接口可以作为实现类数组的引用
   * 当数组被实例化时,不需要声明数组大小,否则语法错位
   * IInterface ab[] = new IInterface[2]{new SubClassMain(),new SubClassMain()};
   */
  IInterface ab[] = new IInterface[]{new SubClassMain(),new SubClassMain()};
  int iii = ab[1].FS;
  /*
   *ab[1].FS = 5; //写法错误。final类型不能被重新赋值
   */
  System.out.println("IInterface.FS:"+IInterface.FS+",iii:"+iii);
  /*
   * 首先调用子类重写的方法,找不到则调用基类的方法
   */
  System.out.println("a.ff:"+a.ff(2));
  NormalClass c = new NormalClass();
  gg(c);
  gg(c);
  gg(c);
  /*
   * 静态方法修改的是全局的变量,每次操作都叠加有效
   */
  System.out.println("cx:"+c.x);
  String s = "me";
  /*
   * String 作为参数是值引用,final型
   */
  ss(s);
  System.out.println("s:"+s);
 
  c.ff(0);
  /*
   * String 作为参数是值引用,final型
   */
      d.ee(s);
      System.out.println("s:"+s);
      List lst = new ArrayList();
      lst.add("ddd");
      lst.add("ddd");
      lst.add(new NormalClass());
      /*
       * List 可以插入重复的值,并保持顺序
       * List 默认的toString()方法,格式为[ddd, ddd, CC@4a604a60]
       */
      System.out.println(lst);
      /*
       * 此声明合法,为十六进制和八进制的整形
       */
      int i = 0xFFFFFFF1;
      int j = 034;
      System.out.println("i:"+i+"~i:"+~i+",j:"+j);
     
      /*
       * 声明float数据,必须以f结尾
       */
      float fl = 3.2f;
      /*
       * byte,short,int,long,char
       * float,double,
       * boolean 数据基本数据类型
       */
      long l = -3;
      short o = -3;
      int in = -4;
      byte bb = -3;
      /*
       * 这样也行,奇怪!
       */
      char ch ='4',ch2 = 4;
     
      Float flo = new Float(3.2f);
      Double dou = new Double(flo);
      /*
       * true,false,ture
       */
      System.out.println(flo==fl);
      System.out.println(flo.equals(dou));
      System.out.println(flo.equals(fl));
     
      try{
      System.out.println("d.mm:"+d.mm());
      d.tt();
      /*
       * thorw 之后的方法不再被执行
       */
      System.out.println("tt not run");
      }
      /*
       *异常要么被捕获要么被抛出,二者必选其一
       */
      catch (IOException e) {
      System.out.println("IOexception");
      }catch (Exception e) {
//已经被子类捕获的异常,在catch父类中不会被执行
      System.out.println("exception");
      }
      finally{
      /*
       * finally语句在return之前执行
       */
      l=4;
      System.out.println("ttf");
      }
      /*
       * 内部类的声明方法
       */
      InnerClass IC = d.new InnerClass();
      /*
       * 静态内部类的声明方式
       */
      StaticInnerClass ss = new SubClassMain.StaticInnerClass();
}

static StringBuffer methodA(StringBuffer s1, StringBuffer s2) {
  return s1.append(s2);
}


/*
*方法名相同,参数列表不同,返回值类型不同,是允许的
*重写方法的范围不能缩小为private
*/
public void ff(int f,int t) {
//return 1;
}
public int ff(int f) {
return f;
}
public static void gg(NormalClass c){
c.x++;
}
public static void ss(String s){
s = "changed by ss";
}
public void ee(String s){
s = "changed by ee";
}
public void tt() throws IOException{
throw new IOException();
}
public short mm() {
double d = 4.3334444444d;
//double类型,不能被隐式转为short型。只能显示地转型
short ss = (short)d;
return ss;
}


}

interface IInterface{
//接口的属性全部(默认)为static final型
public int x = 1;
public int FS = 4;
}
abstract class BaseClass{
public int x ;
/*
* 不同参数类型的同名方法属于重载。
* 如果返回值类型也不相同不属于重载,但此时不能有相同的参数列表,
* 否则java无法确认你要调用哪个方法
*/
public void ff(){}
public int ff(int x){ return 0;}
}
class NormalClass{
public int x = 3;
boolean bb =false;
public void ff(){}
public int ff(int x){
  /*
   * 在外部时,内部类的声明方式:需要外部内引用
   */
  SubClassMain.InnerClass IC = new SubClassMain().new InnerClass();
  SubClassMain.StaticInnerClass ss = new SubClassMain.StaticInnerClass();
   /*
   * 赋给bb什么值,则"bb=true"返回什么值,如果bb是int类型,则语法错误。
   */
if(bb=true){
System.out.println("bb:"+bb);
}
return 0;
}
}
分享到:
评论

相关推荐

    《Java基础入门(第3版)》(Java):课后答案-docx文档

    《Java基础入门(第3版)》是一本针对Java初学者的教材,其课后答案文档提供了对书中习题的解答,旨在帮助读者巩固所学知识。Java是一种面向对象的编程语言,具备跨平台性,由Java虚拟机(JVM)负责解释执行。Java...

    java初学者必备基础教材

    2. **Java程序概述**:一个Java程序由一个或多个类组成,每个类都包含方法和变量。程序的执行始于主类的main方法。Java程序首先通过编译器(javac)转化为字节码(.class文件),然后由Java虚拟机(JVM)解释执行。...

    java基础试题综合试题

    3. **静态方法**:若要通过类名直接调用一个方法,该方法必须是静态的。因此,选项A是正确的静态方法头。 4. **合法的Java标识符**:Java标识符可以包含字母、数字、下划线 `_` 和美元符号 `$`,但不能以数字开头,...

    Java基础教程(第2版)实验练习与提高源代码

    - 这个实验展示了如何处理包含多个类的项目,其中有一个主类`MainClass`,和其他辅助类如`A`、`B`、`C`。每个类都有其特定的功能,`MainClass`通过实例化这些类并调用它们的方法来执行程序。 3. **基本类型、数组...

    Java基础课件

    "程序,你需要定义一个公共类(public class)并包含main方法,这是Java程序的入口点: ```java public class HelloWorld { public static void main(String[] args) { System.out.println("您好!"); } } ``` ...

    java基础代码实例_2

    Java编程语言是软件开发领域广泛使用的工具,尤其对于初学者来说,它是理解计算机科学概念和技术的一个理想入口。"java基础代码实例_2"这个主题涵盖了Java编程的基础知识,旨在帮助新手程序员逐步熟悉Java语言的语法...

    Java基础语法课件(帮助ava初学者快速入门)

    每个Java程序至少有一个主类,其中包含main方法,这是程序执行的入口点。例如: ```java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } ``` ...

    Java 基础 第1阶段:基本语法-尚硅谷学习笔记(含面试题) 2023年

    本学习资料专注于Java的基础语法,这是每个Java程序员必须掌握的核心知识。2023年的"Java 基础 第1阶段:基本语法——尚硅谷学习笔记(含面试题)"涵盖了从环境搭建到程序设计的基本要素,旨在帮助学习者系统地理解...

    341.339.JAVA基础教程_面向对象(下)-复习:main()(341).rar

    Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性、健壮性和安全性。在Java中,面向对象编程(Object-...通过本教程的学习,开发者可以进一步巩固Java面向对象编程的基础,提升编程技能。

    Java程序设计基础

    Java是一种强类型语言,它区分大小写,并且每个程序都始于一个主类,其中包含`public static void main(String[] args)`方法。这是程序的入口点。例如: ```java public class HelloWorld { public static void ...

    java基础知识总结

    2. JAVASE(Java Platform Standard Edition):提供桌面应用程序开发能力,是其他两个架构的基础。 3. JAVAME(Java Platform Micro Edition):设计用于开发电子消费产品和嵌入式设备上的应用程序,如手机应用。 ...

    利用java做一个计算器

    在Java编程语言中,创建一个简单的计算器程序是一个经典的练习,它可以帮助初学者理解面向对象编程的概念、事件处理以及GUI(图形用户界面)设计。在这个项目中,我们将探讨以下几个关键知识点: 1. **基础语法和...

    JAVA基础学习

    "JAVA基础学习"这个主题涵盖了初学者需要掌握的所有关键概念,是深入理解这门语言的起点。"java入门基础知识"则进一步强调了对于新手来说至关重要的基础知识。 1. **Java环境配置**:首先,学习Java需要在计算机上...

    Java零基础 - 第一个Java程序.md

    ### Java零基础—第一个Java程序的关键知识点 #### 一、编写源码 1. **文本编辑器的选择**:为了编写Java源代码,首先需要选择一个合适的文本编辑器。常见的文本编辑器包括记事本(Notepad)、Sublime Text、Atom...

    java基础复习资料.pdf

    根据给定的文件内容,我们可以提炼出以下...通过上述分析,我们可以看到,文档的内容虽然由于OCR技术原因,存在一些错误和遗漏,但是仍然覆盖了Java基础知识的多个重要方面,适合用于复习和巩固Java编程的基础概念。

    java面向对象语言的实验报告

    - Java应用程序的典型结构包括一个公共类和main方法,这是程序的入口点。 - 开发过程包括编写源代码、编译源代码生成.class字节码文件,最后运行程序输出结果。 3. Java基本数据类型、运算符、表达式与数组 - ...

    《java编程基础》答案

    "开始,这是Java程序的简单示例,展示了如何定义一个主类(public class Main)和主方法(public static void main(String[] args))。 4. **基本语法**:Java是一种静态类型的强类型语言,需要声明变量的数据类型...

    java基础学习的好资料(推荐)

    这将让你熟悉Java的基本语法结构,如public class、main方法以及System.out.println()。 3. **数据类型**:Java有两大类数据类型:基本类型(如int、char、boolean)和引用类型(如类、接口、数组)。理解它们的...

Global site tag (gtag.js) - Google Analytics