Java学习之路-day10

1、获取数字的每一个位方法:
获取数字M每一位:
M%10 获取个位数
M/10%10 获取十位数
M/10/10%10 获取百位数
2、static关键字【重点】多个对象共享同一份数据
【只在类当中保存唯一一份数据,所有在本类的对象共享这同一份文件】
【一旦使用static关键字,那么这样的内容【不在属于对象自己,而是属于类的】所以凡是本类的对象都共享同一份;】
如果一个成员变量使用了static关键字进行修饰,那么这个变量不再属于对象自己,而是属于所在的类,多个对象共享使用同一份数据
3、static修饰成员变量

private static int idCount = 0;//使用static进行修饰,idCount变量是属于共享数据
public student(){
	this.id = ++idCount;
}
public student(String name,int age){
	this.name = name;
	this.age = age;
	this.id =++idCount;
}

4、static修饰成员方法

成员方法:public void method(){}
静态方法:public static void method(){}
一旦使用static修饰成员方法,那么就成为了静态方法,【静态方法不属于对象,而是属于类的】
【注意】
【a】如果没有static关键字修饰,那么【必须首先创建对象,然后通过对象才能使用它】
MyClass obj = new new MyClass();
//首先创建对象
//然后才能使用没有static关键字的内容
obj.method();
【b】对于静态方法来说,可以通过对象名直接进行调用,也可以直接通过类名称直接来调用
obj.methodStatic();//对象名进行调用,不推荐,因为在编译之后也会被javac翻译成为——》》【类名称.静态方法名】
MyClass.methodStatic();//直接使用【类名称进行调用,推荐】
【c】如果有static关键字,那么不需要创建对象,直接就能通过类名称来调用
无论是成员变量,还是成员方法,如果有了static进行修饰都推荐使用类名称进行调用;
静态变量:类名称.静态变量
静态方法:类名称.静态方法(参数);

public class DemoStatic{
	public static void main(String[]args){
	method();//类名称.静态方法();
	//【对本类的静态方法,可以省略类名称,进行调用】
	//在编译过程中会翻译成DemoStatic.method();是等效的
	}
	public static void method(){//静态方法
		System.out.println();
	}
}
public class DemoStatic01{
int num;//成员变量
static int numStatic;//静态变量
public void method01(){
//普通的成员方法可以访问成员变量,也可以访问静态变量
	System.out.println(num);
	System.out.println(numStatic);
}
public static void method02(){
//静态方法只能访问静态变量
	System.out.println(num);//因为是成员变量,静态方法不能访问,报错
	System.out.println(numStatic);
	System.out.println(this);//错误写法
			//this代表当前对象,谁调用方法,谁就是当前对象
			//静态方法会【强制翻译成类名称.静态方法】,变成共享数据,
			//而this代表当前对象,出现冲突
	}
}

综上代码可知:
1、静态不能访问非静态;
因为在内存当中是【先有静态内容,后有非静态内容】
2、静态方法当中不能使用this关键字

根据【类名称访问静态成员变量】的时候,全程和对象是没有关系的,只和类有关系,在方法区有专门的一块区域,静态方法区,用来存储静态内容
5、静态代码块
格式:
static{

}

public class Demo{
	public static void main(String[]args){
		static{
			//静态代码块
			//第一次使用本类时,static静态代码块只执行唯一的一次
			//当第二次使用本类时,静态代码块就不会再执行了

		}		

	}
}

【注意】当第一次用到本类时,静态代码块执行唯一的一次
【运行顺序,静态总是优先于非静态的,所以静态代码块比构造方法先执行】
【静态代码块的典型用途】:
用来一次性的对静态成员变量进行赋值————》jdbc数据库时使用
6、Arrays类
【1】、public static String toString(数组){
}//String str = Arrays.toString(数组);
//将指定数组转换成字符串
【2】、public static void sort(数组){
}//将指定数组按照默认升序进行排序,从小到大
【3】、【sort使用的注意】
【a】、如果是数值,sort默认值按照升序从小到大
【b】、如果是字符串,sort默认按照字母升序
【c】、如果自定义类型,那么这个自定义的类需要有Comparable或Comparator接口的支持
7、java.util.Math类是数学相关的工具类
【1】、public static double abs(double num);//获取绝对值
【2】、public static double ceil(double num);//向上取整,不是四舍五入
【3】、public static double floor(double num);//向下取整,不是四舍五入
【4】、public static long round(double num);//四舍五入

Math.PI—》圆周率
今天学习状态不是很好,需要调整,明天加油,以马内利,共勉!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值