Java跳躍級知識儲備
1.Mathod新篇章
1.0進制轉化(方法中的引數其實就是區域變數,在方法中定義的變數要賦初值)
import java.util.Scanner;
public class Main//進制轉化
{
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
int num=input.nextInt();
System.out.println(DecToHex(num));
String s=input.next();
System.out.println(HexToDec(s));
}
public static int HexToDec(String s)
{
int sum=0,k=0;
for(int i=s.length()-1;i>=0;i--)
{
char ch=s.charAt(i);
if(ch>='0'&&ch<='9')
{
sum+=(ch-'0')*Math.pow(16, k);
}
else
{
sum+=(ch-'A'+10)*Math.pow(16,k);
}
k++;
}
return sum;
}
public static String DecToHex(int num)
{
String s="";
int t;
char ch;
while(num!=0)
{
t=num%16;
if(t>=0&&t<=9)
{
ch=(char) (t+'0');
}
else
{
ch=(char) (t-10+'A');
}
s=ch+s;
num/=16;
}
return s;
}
}
2.0 方法多載
多載指的是方法名稱相同,引數串列不同,編譯器會根據方法簽名決定呼叫哪個方法
注意:1.有時候呼叫方法會有兩個或更多可能的匹配,編譯器無法判斷哪個更為精確,這稱為歧義呼叫,
2.被多載的方法必須具有不同的引數串列
import java.util.Scanner;
public class Main
{
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
double num1=input.nextDouble();
double num2=input.nextDouble() ;
System.out.println(max(num1,num2));//編譯器會自己決定呼叫哪一個
}
public static int max(int a,int b)
{
return a>b ? a:b;
}
public static double max(double a,double b)
{
return a>b? a:b;
}
}
3.0 可變引數

、
public class Main{
public static int size;
public static int sum=0;
public static void main(String[] args) {
int method = method(19,32,27,458);//計算0-n個數的和
System.out.println(sum);//536
System.out.println(size);//4
}
private static int method(int...arc) {
size=arc.length;
for (int i : arc) {
sum+=i;
}
return sum;
}
}
2.0 面向物件的思考
萬物皆物件!
使用面向物件思想描述現實世界:基本步驟
1.發現類 2.找出屬性(名詞)3.找出行為(動詞) ——資料抽象:是資料和處理方法的結合,
如何使用這一方法(思想)看下面的一個小樣例
public class Actor {
public String name;
public String sex;
public int age ;
public void show(){
System.out.println(name+"\t"+sex+"\t"+age);
}
}
public class Main{
public static void main(String[] args) {
Actor actor1=new Actor();//Actor這個類自定義出來的 需要構造新的類
Actor actor2=new Actor();
actor1.name="V";
actor1.age=25;
actor1.sex="男";
actor1.show();
actor2.name="JK";
actor2.age=23;
actor2.sex="男";
actor2.show();
}
}
這種方法比較麻煩 我們可以采用構造方法 將代碼簡化
修改后為
public class Actor {
public String name;
public String sex;
public int age ;
public Actor(){};
public Actor(String name1,String sex1,int age1 )
{
name=name1;
sex=sex1;
age=age1;
}
public void show(){
System.out.println(name+"\t"+sex+"\t"+age);
}
}
public class Main{
public static void main(String[] args) {
Actor actor1=new Actor("V","男",25);
Actor actor2=new Actor("JK","男",23);
/*
* 如果不傳引數的話就會報錯 因為在原來的類中系統默認構造了一個
* public Actor()
* {
* }
* 而用戶已經構造 會覆寫系統默認的 只需要在原來構造類中添加即可
* */
actor1.show();
actor2.show();
}
}
關于構造方法:
1.沒有回傳值型別 2.名稱與類名一致.3.可以指定引數及實作多載 4.注意隱式構造和引數化構造不能共有
3.0 ArrayList動態陣列——真香系列
敲黑板!
ArrayList不同于普通陣列的最大區別是它可以更改陣列的長度 操作起來便利
ArrayList如果希望存盤基本型別 存盤基本型別的包裝類
集合也可以做引數

下面ArrayList的練習
1)存盤1-33的6個亂數字 并遍歷列印
import java.util.ArrayList;
import java.util.Random;
public class Practice {
public static void main(String[] args) {
ArrayList<Integer> list=new ArrayList<>();
Random r=new Random();
for(int i=0;i<6;i++)
{
int num=r.nextInt(33)+1;
list.add(num);
}
for(int i=0;i<list.size();i++)
{
System.out.print(list.get(i)+" ");
}
}
}
2)存盤自定義類 題目為存盤學生型別 姓名以及學生年齡
public class Student {
private String name;
private int age;
public Student() {}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
import java.util.ArrayList;
public class Practice {
public static void main(String[] args) {
ArrayList<Student> list=new ArrayList<>();
Student one =new Student("金泰亨",25);
Student two =new Student("田柾國",23);
list.add(one);
list.add(two);
for(int i=0;i<list.size();i++)
{
Student stu=list.get(i);//放入的是學生類 拿出的也是學生類
System.out.println("姓名:"+stu.getName()+" "+"年齡:"+stu.getAge());
}
}
}
3)篩選集合里的偶數 放到小集合里
import java.util.ArrayList;
import java.util.Random;
public class Practice {
public static void main(String[] args) {
ArrayList<Integer> biglist=new ArrayList<>();
Random r=new Random();
for(int i=0;i<100;i++)
{
int num=r.nextInt(101);
biglist.add(num);
}
ArrayList small= getlists(biglist);
System.out.println("小集合里的元素個數為:"+small.size());
for(int j=0;j<small.size();j++)
{
System.out.print(small.get(j)+" ");
}
}
public static ArrayList<Integer> getlists(ArrayList<Integer> biglist)
{
ArrayList<Integer> small = new ArrayList<>();
for(int i=0;i<biglist.size();i++)
{
int num=biglist.get(i);
if(num%2==0)
{
small.add(num);
}
}
return small;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/184100.html
標籤:Java
上一篇:redis的快取穿透、雪崩、擊穿
