java基础知识:
1:形式参数和返回值的问题 (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的是该类的子类对象 接口名:返回的是该接口的实现类的对象 (3)链式编程 对象.方法1().方法2().......方法n(); 这种用法:其实在方法1()调用完毕后,应该返回一个对象; 方法2()调用完毕后,应该返回一个对象。 方法n()调用完毕后,可能是对象,也可以不是对象。 2:包 (1)其实就是文件夹 (2)作用: A:区分同名的类 B:对类进行分类管理 a:按照功能分 b:按照模块分 (3)包的定义 package 包名; 多级包用.分开。 (4)注意事项: A:package语句必须在文件中的第一条有效语句 B:在一个java文件中,只能有一个package C:如果没有package,默认就是无包名 (5)带包的编译和运行 A:手动式 B:自动式 javac -d . HelloWorld.java 3:常见的修饰符 (1)分类: 权限修饰符:private,默认,protected,public 状态修饰符:static,final 抽象修饰符:abstract (2)常见的类及其组成的修饰 类: 默认,public,final,abstract 常用的:public 成员变量: private,默认,protected,public,static,final 常用的:private 构造方法: private,默认,protected,public 常用的:public 成员方法: private,默认,protected,public,static,final,abstract 常用的:public (3)另外比较常见的: public static final int X = 10; public static void show() {} public final void show() {} public abstract void show(); 4:内部类 (1)把类定义在另一个类的内部,该类就被称为内部类。 举例:把类B定义在类A中,类B就被称为内部类。 (2)内部类的访问规则 A:可以直接访问外部类的成员,包括私有 B:外部类要想访问内部类成员,必须创建对象 (3)内部类的分类 A:成员内部类 B:局部内部类 (4)成员内部类 A:private 为了数据的安全性 B:static 为了访问的方便性 成员内部类不是静态的: 外部类名.内部类名 对象名 = new 外部类名.new 内部类名(); 成员内部类是静态的: 外部类名.内部类名 对象名 = new 外部类名.内部类名(); class Outer { public int num = 10; class Inner { public int num = 20; public void show() { int num = 30; System.out.println(num); System.out.println(this.num); System.out.println(Outer.this.num); } } } 显示结果是 30 20 10 (5)局部内部类 A:局部内部类访问局部变量必须加final修饰。 B:为什么呢? 因为局部变量使用完毕就消失,而堆内存的数据并不会立即消失。 所以,堆内存还是用该变量,而该变量已经没有了。 为了让该值还存在,就加final修饰。 通过反编译工具我们看到了,加入final后,堆内存直接存储的是值,而不是变量名 (6)匿名内部类 A:是局部内部类的简化形式 B:前提 存在一个类或者接口 C:格式: new 类名或者接口名() { 重写方法; } D:本质: 其实是继承该类或者实现接口的子类匿名对象 (7)匿名内部类在开发中的使用 我们在开发的时候,会看到抽象类,或者接口作为参数。 而这个时候,我们知道实际需要的是一个子类对象。 如果该方法仅仅调用一次,我们就可以使用匿名内部类的格式简化
java编程小题:
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
1 import java.util.Scanner; 2 public class example{ 3 public static void main(String[] args){ 4 System.out.print("请输入一个整数:"); 5 Scanner scan = new Scanner(System.in); 6 int n = scan.nextInt(); 7 scan.close(); 8 9 boolean[] isIn = new boolean[n]; 10 for(int i=0; i < isIn.length; i++) 11 { 12 isIn[i] = true; 13 } 14 15 int inCount = n; 16 int countNum = 0; 17 int index = 0; 18 while(inCount > 1) 19 { 20 if(isIn[index]){ 21 countNum++; 22 if(countNum == 3){ 23 countNum = 0; 24 isIn[index] = false; 25 inCount--; 26 } 27 } 28 index++; 29 if(index==n) 30 index = 0; 31 } 32 for(int i=0;i<n;i++) 33 if(isIn[i]) 34 System.out.println("留下的是:"+(i+1)); 35 } 36 }
原文:http://www.cnblogs.com/aixzhi/p/7384925.html