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 标准的输入流 ...
随机推荐
- Re模块练习题
import re s = "1 -2*(60+(-40.35/5)-(-4*3))" # 获取所有数字 ret = re.findall(r"\d+", s) ...
- mysql中的读锁和写锁
当mysql为一个表开启读锁的时候,其他进程包括进程本身没有权利去修改这张表的内容,也没有权利更新,但是可以读取表里面的内容 如下例子 给表上读锁 接着更新一下,显示被锁了 释放锁并插入数据 写锁 查 ...
- 物流配送管理系统(ssm,mysql)
项目演示视频观看地址:https://www.toutiao.com/i6811872614676431371/ 下载地址: 51document.cn 可以实现数据的图形展示.报表展示.报表的导出. ...
- 使用ramdisk启动ubuntu文件系统
环境 Qemu 4.1 vexpress-ca9 概述 为了减小linux内核的大小,可以把一些外设驱动编译成内核模块,但是在启动ubuntu的时候,需要读取flash,但是此时flash的驱动模块存 ...
- 【Hadoop离线基础总结】Hive调优手段
Hive调优手段 最常用的调优手段 Fetch抓取 MapJoin 分区裁剪 列裁剪 控制map个数以及reduce个数 JVM重用 数据压缩 Fetch的抓取 出现原因 Hive中对某些情况的查询不 ...
- Boosting算法总结(ada boosting、GBDT、XGBoost)
把之前学习xgb过程中查找的资料整理分享出来,方便有需要的朋友查看,求大家点赞支持,哈哈哈 作者:tangg, qq:577305810 一.Boosting算法 boosting算法有许多种具体算法 ...
- 阿里巴巴泰山版《Java 开发者手册》,也是一份防坑指南
我是风筝,公众号「古时的风筝」,一个不只有技术的技术公众号,一个在程序圈混迹多年,主业 Java,另外 Python.React 也玩儿的 6 的斜杠开发者. Spring Cloud 系列文章已经完 ...
- Java网络小结
1,定位 IP对机器的定位 端口对软件的定位(65535) URL对软件上每一份资源的定位 2,TCP和UDP TCP 安全,性能低 ①ServerSocket②Socket UDP不安全,性能高 ① ...
- Spring全家桶之springMVC(二)
spring mvc中url-pattern的写法 1.设置url-pattern为*.do 之前我们在web.xml文件中配置DispatcherServlet的时候,将url-pattern配置为 ...
- axios请求拦截器(修改Data上的参数 ==>把data上的参数转为FormData)
let instance = axios.create({ baseURL: 'http://msmtest.ishare-go.com', //请求基地址 // timeout: 3000,//请求 ...