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初学者的教材,其课后答案文档提供了对书中习题的解答,旨在帮助读者巩固所学知识。Java是一种面向对象的编程语言,具备跨平台性,由Java虚拟机(JVM)负责解释执行。Java...
2. **Java程序概述**:一个Java程序由一个或多个类组成,每个类都包含方法和变量。程序的执行始于主类的main方法。Java程序首先通过编译器(javac)转化为字节码(.class文件),然后由Java虚拟机(JVM)解释执行。...
3. **静态方法**:若要通过类名直接调用一个方法,该方法必须是静态的。因此,选项A是正确的静态方法头。 4. **合法的Java标识符**:Java标识符可以包含字母、数字、下划线 `_` 和美元符号 `$`,但不能以数字开头,...
- 这个实验展示了如何处理包含多个类的项目,其中有一个主类`MainClass`,和其他辅助类如`A`、`B`、`C`。每个类都有其特定的功能,`MainClass`通过实例化这些类并调用它们的方法来执行程序。 3. **基本类型、数组...
"程序,你需要定义一个公共类(public class)并包含main方法,这是Java程序的入口点: ```java public class HelloWorld { public static void main(String[] args) { System.out.println("您好!"); } } ``` ...
Java编程语言是软件开发领域广泛使用的工具,尤其对于初学者来说,它是理解计算机科学概念和技术的一个理想入口。"java基础代码实例_2"这个主题涵盖了Java编程的基础知识,旨在帮助新手程序员逐步熟悉Java语言的语法...
每个Java程序至少有一个主类,其中包含main方法,这是程序执行的入口点。例如: ```java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } ``` ...
本学习资料专注于Java的基础语法,这是每个Java程序员必须掌握的核心知识。2023年的"Java 基础 第1阶段:基本语法——尚硅谷学习笔记(含面试题)"涵盖了从环境搭建到程序设计的基本要素,旨在帮助学习者系统地理解...
Java是一种广泛使用的面向对象的编程语言,其设计目标是具有高度的可移植性、健壮性和安全性。在Java中,面向对象编程(Object-...通过本教程的学习,开发者可以进一步巩固Java面向对象编程的基础,提升编程技能。
Java是一种强类型语言,它区分大小写,并且每个程序都始于一个主类,其中包含`public static void main(String[] args)`方法。这是程序的入口点。例如: ```java public class HelloWorld { public static void ...
2. JAVASE(Java Platform Standard Edition):提供桌面应用程序开发能力,是其他两个架构的基础。 3. JAVAME(Java Platform Micro Edition):设计用于开发电子消费产品和嵌入式设备上的应用程序,如手机应用。 ...
在Java编程语言中,创建一个简单的计算器程序是一个经典的练习,它可以帮助初学者理解面向对象编程的概念、事件处理以及GUI(图形用户界面)设计。在这个项目中,我们将探讨以下几个关键知识点: 1. **基础语法和...
"JAVA基础学习"这个主题涵盖了初学者需要掌握的所有关键概念,是深入理解这门语言的起点。"java入门基础知识"则进一步强调了对于新手来说至关重要的基础知识。 1. **Java环境配置**:首先,学习Java需要在计算机上...
### Java零基础—第一个Java程序的关键知识点 #### 一、编写源码 1. **文本编辑器的选择**:为了编写Java源代码,首先需要选择一个合适的文本编辑器。常见的文本编辑器包括记事本(Notepad)、Sublime Text、Atom...
根据给定的文件内容,我们可以提炼出以下...通过上述分析,我们可以看到,文档的内容虽然由于OCR技术原因,存在一些错误和遗漏,但是仍然覆盖了Java基础知识的多个重要方面,适合用于复习和巩固Java编程的基础概念。
- Java应用程序的典型结构包括一个公共类和main方法,这是程序的入口点。 - 开发过程包括编写源代码、编译源代码生成.class字节码文件,最后运行程序输出结果。 3. Java基本数据类型、运算符、表达式与数组 - ...
"开始,这是Java程序的简单示例,展示了如何定义一个主类(public class Main)和主方法(public static void main(String[] args))。 4. **基本语法**:Java是一种静态类型的强类型语言,需要声明变量的数据类型...
这将让你熟悉Java的基本语法结构,如public class、main方法以及System.out.println()。 3. **数据类型**:Java有两大类数据类型:基本类型(如int、char、boolean)和引用类型(如类、接口、数组)。理解它们的...