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;
}
}

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=;i<;i++)
{
int num=r.nextInt()+;
list.add(num);
}
for(int i=;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;
}
}

JAVA自学笔记(2)的更多相关文章

  1. JAVA自学笔记09

    JAVA自学笔记09 1.子类的方法会把父类的同名方法覆盖(重写) 2.final: 1)可修饰类.方法.变量 2)修饰类时:此时该类变为最终类,它将无法成为父类而被继承 3)修饰方法时:该方法将无法 ...

  2. JAVA自学笔记05

    JAVA自学笔记05 1.方法 1)方法就是完成特定功能的代码块,类似C语言中的函数. 2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,-){ 函数体; return ...

  3. JAVA自学笔记06

    JAVA自学笔记06 1.二维数组 1)格式: ①数据类型[][]数组名 = new 数据类型[m][n]; 或 数据类型[]数组名[]=new 数据类型[m][n]; m表示这个二维数组有多少个一维 ...

  4. JAVA自学笔记04

    JAVA自学笔记04 1.switch语句 1)格式:switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; - default: 语句体n+ ...

  5. JAVA自学笔记07

    JAVA自学笔记07 1.构造方法 1) 例如:Student s = new Student();//构造方法 System.out.println(s);// Student@e5bbd6 2)功 ...

  6. JAVA自学笔记10

    JAVA自学笔记10 1.形式参数与返回值 1)类名作为形式参数(基本类型.引用类型) 作形参必须是类的对象 2)抽象类名作形参 需要该抽象类的子类对象,通过多态实现 3)接口名为形参 需要的是该接口 ...

  7. JAVA自学笔记13

    JAVA自学笔记13 1.StringBuffer类 1)线程安全的可变字符序列 线程安全(即同步) 2)StringBuffer与String的区别:一个可变一个不可变 3)构造方法: ①publi ...

  8. JAVA自学笔记11

    JAVA自学笔记11 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 B:在src目录下创建包.cn.itcast C:在cn.i ...

  9. JAVA自学笔记14

    JAVA自学笔记14 1.正则表达式 1)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.其实就是一种规则.有自己的特殊应用 2)组成规则: 规则字符在java.util.rege ...

  10. JAVA自学笔记12

    JAVA自学笔记12 1.Scanner 1)JDK5后用于获取用户的键盘输入 2)构造方法:public Scanner(InputStream source) 3)System.in 标准的输入流 ...

随机推荐

  1. IIS 搭网站(一)

    搭建类型win+IIs+asp+access(一) 第一步首先保证虚拟机的系统软盘是连接状态,如下图状态即可 第二步: 第三步: 第四步: 第五步: 第六步:这个时候就会自动搜索软盘里面的数据自动安装 ...

  2. Blazor一个简单的示例让我们来起飞

    Blazor Blazor他是一个开源的Web框架,不,这不是重点,重点是它可以使c#开发在浏览器上运行Web应用程序.它其实也简化了SPA的开发过程. Blazor = Browser + Razo ...

  3. [Linux] Hexo 搭建个人博客

    不做笔记出了bug就得重新再看一遍视频 视频来源: https://www.bilibili.com/video/BV1Yb411a7ty?t=75 安装 先安装 nodejs,npm, git 安装 ...

  4. Redis实现分布式锁(设计模式应用实战)

    笔者看过网络上各种各样使用redis实现分布式锁的代码,要么错误,要么片段化,没有一个完整的例子,借这个周末给大家总结一下redis实现分布式锁的两种机制 自旋锁和排他锁 鉴于实现锁的方式不同,那么这 ...

  5. Adobe Reader XI 打开后“已停止工作”的解决办法

    搜了好多方法按照步骤做完,基本无用,试了以下方法搞定. 具体方法是: 把域名解析到本机. 打开 C:\Windows\System32\drivers\etc\hosts 添加 127.0.0.1 a ...

  6. 简述异步编程&Promise&异步函数

    前言:文章由本人在学习之余总结巩固思路,不足之前还请指出. 一.异步编程 首先我们先简单来回顾一下同步API和异步API的概念 1.同步API:只有当前的API执行完成之前,才会执行下一个API 例: ...

  7. C#实现前向最大匹、字典树(分词、检索)

    场景:现在有一个错词库,维护的是错词和正确词对应关系.比如:错词“我门”对应的正确词“我们”.然后在用户输入的文字进行错词校验,需要判断输入的文字是否有错词,并找出错词以便提醒用户,并且可以显示出正确 ...

  8. CODING 敏捷实战系列课第五讲:敏捷中国史

    敏捷软件开发方法自 2001 年传入中国以来,历经十多年的发展变迁,目前已经成为国内 IT 企业主流的研发管理方法.敏捷方法的传播和发展历程,是中国 IT 行业发展的剪影.CODING 特邀敏捷顾问. ...

  9. 【Effective Java】第二章-创建和销毁对象——1.考虑用静态工厂方法代替构造器

    静态工厂方法的优点: 可以赋予一个具有明确含义的名称 可以复用唯一实例,不必每次新建 可以返回原实例类型的子类对象 可以在返回泛型实例时更加简洁 缺点: 类如果不含有共有的或者受保护的构造器,就不能被 ...

  10. Vi 和 Vim 的使用

    Vi (Visual Interface)是 Linux下基于Shell 的文本编辑器,Vim (Visual Interface iMproved)是 Vi的增强版本,扩展了很多功能,比如对程序源文 ...