JAVA自学笔记(2)
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)的更多相关文章
- JAVA自学笔记09
JAVA自学笔记09 1.子类的方法会把父类的同名方法覆盖(重写) 2.final: 1)可修饰类.方法.变量 2)修饰类时:此时该类变为最终类,它将无法成为父类而被继承 3)修饰方法时:该方法将无法 ...
- JAVA自学笔记05
JAVA自学笔记05 1.方法 1)方法就是完成特定功能的代码块,类似C语言中的函数. 2)格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,-){ 函数体; return ...
- JAVA自学笔记06
JAVA自学笔记06 1.二维数组 1)格式: ①数据类型[][]数组名 = new 数据类型[m][n]; 或 数据类型[]数组名[]=new 数据类型[m][n]; m表示这个二维数组有多少个一维 ...
- JAVA自学笔记04
JAVA自学笔记04 1.switch语句 1)格式:switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; - default: 语句体n+ ...
- JAVA自学笔记07
JAVA自学笔记07 1.构造方法 1) 例如:Student s = new Student();//构造方法 System.out.println(s);// Student@e5bbd6 2)功 ...
- JAVA自学笔记10
JAVA自学笔记10 1.形式参数与返回值 1)类名作为形式参数(基本类型.引用类型) 作形参必须是类的对象 2)抽象类名作形参 需要该抽象类的子类对象,通过多态实现 3)接口名为形参 需要的是该接口 ...
- JAVA自学笔记13
JAVA自学笔记13 1.StringBuffer类 1)线程安全的可变字符序列 线程安全(即同步) 2)StringBuffer与String的区别:一个可变一个不可变 3)构造方法: ①publi ...
- JAVA自学笔记11
JAVA自学笔记11 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 B:在src目录下创建包.cn.itcast C:在cn.i ...
- JAVA自学笔记14
JAVA自学笔记14 1.正则表达式 1)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.其实就是一种规则.有自己的特殊应用 2)组成规则: 规则字符在java.util.rege ...
- JAVA自学笔记12
JAVA自学笔记12 1.Scanner 1)JDK5后用于获取用户的键盘输入 2)构造方法:public Scanner(InputStream source) 3)System.in 标准的输入流 ...
随机推荐
- tomcat多个springboot项目启动失败
多个springboot项目打包成war包并放到tomcat下运行时出错了错误信息: Caused by: org.springframework.jmx.export.UnableToRegiste ...
- 一文带你深入了解 Lambda 表达式和方法引用
前言 尽管目前很多公司已经使用 Java8 作为项目开发语言,但是仍然有一部分开发者只是将其设置到 pom 文件中,并未真正开始使用.而项目中如果有8新特性的写法,例如λ表达式.也只是 Idea Al ...
- N - 寿司晚宴 HYSBZ - 4197 状压dp
N - 寿司晚宴 HYSBZ - 4197 推荐题解 这个题目我觉得还是很难的,借助题解写出来的,题解还看了很久,现在还是不是很理解. 首先这个数比较大有500,如果直接就像这个题目S - Query ...
- 在web项目中使用shiro(记住我功能)
第一步,添加“记住我”复选框,rememberMe要设置参数 第二步,配置shiro的主配置文件 注意 rememberMeCookie对应的bean中要声明 <constructor-arg ...
- 单口RAM、双口RAM、FIFO
单口与双口的区别在于,单口只有一组数据线与地址线,因此读写不能同时进行.而双口有两组数据线与地址线,读写可同时进行.FIFO读写可同时进行,可以看作是双口. 双口RAM分伪双口RAM(Xilin ...
- ":-"的用法举例
例子1: #!/bin/bash A=aaa C=${A:-bbb} echo $C 输出结果:aaa 例子2: #!/bin/bash A="" C=${A:-bbb} echo ...
- strcmp比较字符串
0x01 <?php $flag = "flag{xxxxx}"; if (isset($_GET['a'])) { if (strcmp($_GET['a'], $flag ...
- masonry中的make,remake,update
- (void)viewDidLoad { [super viewDidLoad]; self.navigationController.navigationBar.translucent = NO; ...
- 大技霸教你远程执行Linux脚本和命令
如果现在需要在 Linux 服务器上执行一系列命令(比如搭建 LNMP 环境)我应该会第一时间想到想办法写个 Shell 脚本,然后扔上去执行以下看看结果. 然而一贯懒惰的我并不想这么去执行 Shel ...
- com.zx.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization. 报错问题
数据库连接问题 需要处理的地方有3处 1.url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncodi ...