android开发学习-2

多态:动物即是多态。如动物可以是狼、可以是:狗

封装:看不到内部结构;可以看到表面现象;

继承:直接字面理解;

Java的类:java垃圾回收机制、如不用自己释放对象。

栈内存的存储是先进先出:

堆内存的存储是先进后出:

 

class的构造方法:不用写返回值。

属性用类名

构造方法方法名称用类名

传参数。

package com.java1;

 

public class a20121223 {

int a;

int b;

public a20121223(int x, int y){

this.a=x;

this.b=y;

}

Public a20121223(){

System.out.println(“ok”);

}

Public a20121223(int a;){

This.a=a;

}

Public int abc(int a; int b;){

This.a=a;

This.b=b;

A+=a;

Return  a;

}

//a20121223 p1=new a20121223();实例化对象用的。所以a20121223里的方法方法名要用类名a20121223 a20121223类里还有其他方法。则这些方法就要用实例后的p1.abc()这样调用,如果要返回值则要在abc方法内添加return;没有返回值则不用;

 


类的继承:

java:单继承多实现,也就是只能有一个extends 可以有多个implements

Public class soldier extends sole{}

就是soldier类。继承了sole类。

继承了。就可以定义里面的东西了。比如下面的父类

public class role {

private String name;

public role(String name){

this.name=name;

}

public String getName() {

return name;

}

 

public void setName(String name) {

this.name = name;

}

 

public int attack(){

return 0;

}

}

子类:

public class Magicer extends role{

 

private int base=5;

private int leave;

 

public Magicer(String name){

super(name);

}

public int getBase() {

return base;

}

public void setBase(int base) {

this.base = base;

}

public int getLeave() {

return leave;

}

public void setLeave(int leave) {

this.leave = leave;

}

   @Override

public int attack() {

return base*leave;

}

}


Final 关键字只能初始化一次;

Final int a=1;

a=3;//出错。

 

Final修饰的 变量只能够初始化一次;

Final修饰的 类不能被继承;

Final修饰的 方法子类不能覆盖;

 

Public static final int flag=0x55;

一般fianlstatic和用;


Abstract抽象类。

abstract class Abc{
abstract void a();// 抽象方法
public void kk(){
}
}


数组:

Int array[]=new int[4];//定义

System.out.println(Arrays.toString(array));//相当于循环遍历输出整个数组。

String []datas={“华人”,”中国”};//定义

Boolean []bools=new boolean[4];//定义。

 

Javaapi进行拷贝数组;

Int [ ] ary1={1,2,3,4,5};

Int []copy=new int[4];

Systm.arraycopy(arry1,1,copy,0,copy.length);第一是有数的数组(原数组),第二个数;是从第几个开始,第三个数是要拷贝的数组,第四个数是要拷贝数从第几个开始拷贝,第五个数是总共要拷贝多长。

相当于隔离复制。

(即非隔离复制如下)

 int []ary1={1,2,3,4,5,6}

Int []ary2=ary1;

 Ary2[3]=555;

//输出时ary1[3] 也会变成555

扩展数组;

char []chars={'',''};

char []tempchar=Arrays.copyof (chars, 5);

tempchar[2]='';

tempchar[3]='';

tempchar[4]='';

System.out.println(Arrays.toString(tempchar));

 

Copyof方法扩容;

增强for循环

 

Char []tempchar=new char[6];

for(char i:temphcar){

System.out.println(i);

}

()中的char I 为要输出的i:后面的是原有的数组;

 

public static int[] daoche(int[]arr){

int []a=new int[arr.length] ;

for (int i = 0; i < a.length; i++) {

//a[i]=arr[arr.length-1-i];

a[a.length-1-i]=arr[i];

}

return a;

}

// 倒序输出、  

Int[]arr={1,2,3,4,5,6,7};

 public static void doazhe2(int[]arr){

for (int i = 0; i < arr.length/2; i++) {

int temp=arr[i];

arr[i]=arr[arr.length-1-i];

arr[arr.length-1-i]=temp;//这句不能忘了。忘了输出就变成{7,6,5,4,5,6,7}

}

}

 

自我扩容:Arr=arrays.copyof(arr,arr.length+1);

加上static不用实例化就可以调用函数。

如果没有static这要先创个**方法。才可以调用;

 

输出系统运行时间:

long time=System.currentTimeMillis();

System.out.println(System.currentTimeMillis()-time);

 

Int[][]a=new int[i][j];

a.leng为列的长度;

a.[i].leng—>为第i行的长度

</t>+:制表符;

 

数组排序:选择排序;冒泡排序;插入排序;

两个循环;arrays.sort(array);系统提供的排序法。

 

选择排序:Int temp;

Forint i=0;i<arr.length;i++{

For(int j=i+1;j<arr.length;j++){

If(arr[i]< arr[j]){

temp=arr[i];arr[i]=arr[j];arr[j]=temp;

}

}

}

 

冒泡排序:

for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}

两两对比:

 

 

System.out.println(System.currentTimeMillis());输出系统时间。

Random r=new random();

Int aa=r.nextInt(1000);产生11000的随机数;

插入排序:

如果前面一个数比自己大。就将前面的一个数赋值给自己的位置

如果前面一个数比自己小。就在前面的后一位插入自己;

如果到边界值(a[0])就将自己赋值给a[0]

int j;
for (int i = 1; i < arr.length; i++) {
temp = arr[i];
for (j = i - 1; j >= 0; j--) {
if (temp < arr[j]) {
arr[j + 1] = arr[j];
} else {
break;
}
}
arr[j + 1] = temp;
}
System.out.println(Arrays.toString(arr));

 

 

递归;自己调用自己:

public static int jiec(int n){

if(n==1) return 1;//n1的时候需要会用到jiec方法。而jiec方法的返回值是int。所以要return

int y=jiec(n-1)*n;

return y;

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值