面向对象学习记录2

1.try catch必须catch API文档里面有throw紧接的方法里面的异常,Throwable-

Error,Exception;Exception-RuntimeException,必须捕获的异常
2.子类异常捕获不能在基类捕获后面,重写方法需要抛出与原方法所抛异常类型一致异

常或不抛出异常
3.java的数组是引用类型,不能存放在STACK空间,java语言中声明数组时不能指定其

长度(数组中元素的个数)。因为Java数组里面的数据是分配在HEAP里面,即使数组里

面的数据类型为基本数据类型

4.数组定义与为数组元素分配空间和赋值的操作分开进行(动态初始化)或在定义数组

的同时就为数组元素分配空间并赋值(静态初始化),数组有一个属性为length,指明

数组的长度。

5.public static void main(String[] args){
 if(args.length<3){
  System.out.println("Usage:java Test \"p1\" \"op\" \"p2\"");
  System.exit(-1);
 }
 double d1=Double.parseDouble(args[0]);
 double d2 = Double.parseDouble(args[2]);
 double d = 0 ;
 if(args[1].equals("+")) d=d1+d2;
 else if(args[1].equals("-")) d = d1-d2;
 else if(args[1].equals("*")) d = d1*d2;
 else if(args[1].equals("/")) d = d1/d2;
 else{
  System.out.println("Error operator");
  System.exit(-1);
 }
 System.out.println(d);
}

6.public class NumSort {
 public static void main(String[] args){
  int[] a = new int[args.length];
  for(int i=0;i<args.length;i++){
   a[i] = Integer.parseInt(args[i]);
  }
  print(a);
  envolvedSelectionSort(a);
  print(a);
 }

 private static void envolvedSelectionSort(int[] a){
  int k,temp;
  for(int i=0;i<a.length;i++){
   k = i;
   for(int j=k+1;j<a.length;j++){
    if(a[k]>a[j]){
     k=j;
    }
   }
   if(k!=i){
    temp = a[i];
    a[i] = a[k];
    a[k] = temp;
   } 
  }
 }

 private static void selectionSort(int[] a){
  for(int i=0;i<a.length;i++){
   for(int j=i+1;j<a.length;j++){
    if(a[j]<a[i]) {
     int temp = a[i];
     a[i] = a[j];
     a[j] = temp;
    }
   }
  }
 }
 private static void print(int[] a){
  for(int i=0;i<a.length;i++){
   System.out.print(a[i] + " ");
  }
  System.out.println();
 }
}

7.public class DateSort{
 public static void main(String[] args){
  Date[] days = new Date[5];
  days[0] = new Date(2011,4,5);
  days[1] = new Date(2013,4,5);
  days[2] = new Date(2010,4,5);
  days[3] = new Date(2011,4,5);
  days[4] = new Date(2011,9,5);
  bubbleSort(days);
  for(int i=0;i<days.length;i++)
   System.out.println(days[i].year+" "+days[i].month+"

"+days[i].day);
  Date day = new Date(2004,4,6);
 }

 public static int binarySearch(Date[] days ,Date d){
  if(days.length==0)
   return -1;
  int startPos = 0;
  int endPos = days.length-1;
  int m = (startPos+endPos)/2;
  while(startPos<=endPos){
   if(d.compare(days[m])==0)
    return m;
   if(d.compare(days[m])>0)
    startPos = m+1;
   if(d.compare(days[m])<0)
    endPos=m-1;
   m=(startPos+endPos)/2;
  }
  return -1;
 }
 
 public static Date[] bubbleSort(Date[] a){
  int len = a.length;
  for(int i=len-1;i>=1;i--)
   for(int j=0;j<=i-1;j++){
    if(a[j].compare(a[j+1])>0){
     Date temp = a[j];
     a[j]=a[j+1];
     a[j+1]=temp;
    }
   }
   return a;
 }
}
class Date {
 int year,month,day;
 Date(int y,int m,int d){
  year = y; month=m;day=d;
 }
 public int compare(Date date){
  return year>date.year ? 1
  : year<date.year ? -1
  : month > date.month ? 1
  : month < date.month ? -1
  : day > date.day ? 1
  : day < date.day ? -1:0;
 }
}

8.class Count3Quit2
{
 public static void main(String[] args)
 {
  KidCircle kc = new KidCircle(500);
  int countNum = 0;
  Kid k = kc.first;
  while(kc.count>1){
   countNum++;
   if(countNum==3){
    countNum = 0;
    kc.delete(k);
   }
   k=k.right;
  }

  System.out.println(kc.first.id);
 }
}

class Kid
{
 int id;
 Kid left;
 Kid right;
}

class  KidCircle
{
 int count = 0;
 Kid first,last;

 KidCircle(int n){
  for(int i=0;i<n;i++){
   add();
  }
 }
 

 void add(){
  Kid k = new Kid();
  k.id = count;
  if(count <= 0){
   first = k;
   last = k;
   k.left = k;
   k.right = k;
  }else{
   last.right = k;
   k.left = last;
   k.right = first;
   first.left = k;
   last = k;
  }
  count++;
 }

 void delete(Kid k){
  if(count<=0){
   return;
  }else if(count==1){
   first = last = null;
  }else{
   k.left.right = k.right;
   k.right.left = k.left;
   if(k==first)
    first = k.right;
   else if(k==last)
    last = k.left;
  }
  count--;
 }
}


 


8.public static String valueOf(...)可以将基本数据类型数据转换为字符串,调用

的是参数对象对应的toString()方法

9.public class Split{
 public static void main(String[] args){
  int j=1234567;
  String sNumber = String.valueOf(j);
  System.out.println("j 是"+sNumber.length()+"位数");
  String s = "Mary,Female,7666";
  String[] sPlit = s.split(",");
  for(int i=0;i<sPlit.length;i++)
   System.out.println(sPlit[i]);
 }
}
多态是OOP中最核心的内容

9.String s ="adafdafdsadsfd";
String sToFind="ad";
int count=0;
while(s.indexOf(sToFind)!=-1){
 count++;
 s=s.substring(s.indexOf(sToFind));
}

10mobile fee
包装类,parse...()方法,valueOf()方法,minvalue maxvalue
Math,random()方法
File类对象代表文件名
StringTokenizer以被正则表达式的功能替代了。
Math.round(b);对b四舍五入到小数点后一位;
windows 和linux下用“/”都没有问题,而“\”在java里面是转义字符的意思要“\\

”来表示反斜杠,但在LINUX下面不能被识别
1970年0时0分0秒。。。到现在的毫秒数的方法存储时间

import java.io.*;
public class FileTest{
 public static void main(String[] args){
  String separetor = File.separetor;
  String filename = "myfile.txt";
  String directory = "mydir1" + separetor +"mydir2";
  File f = new File(directory,filename);
  if(f.exists()){
   System.out.println("name : "+f.getAbsolutePath());
   System.out.println("sizeof file: "+f.length());
  }else{
   f.getParentFile().mkdirs();
   try{
    f.createNewFile();
   }catch(IOException e){
    e.printStackTrace();
   }
  }
 }
}

11.按层次打印文件夹目录
import java.io.*;
class ListFile2
{
 public static void main(String[] args)
 {
  File f = new File("e:/test/sxt");
  System.out.println(f.getName());
  tree(f,1);
  //System.out.println("Hello World!");
 }

 private static void tree(File f,int level){
  String preStr = "";
  for(int i=0;i<level;i++)
   preStr+="   ";
  File[] children = f.listFiles();
  for(int i=0;i<children.length;i++){
   System.out.println(preStr+children[i].getName());
   if(children[i].isDirectory()){
    tree(children[i],level+1);
   }
  }
 }
}
12.枚举类型可以限制选择类型,在编译时就可以检查

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值