Java周记(1)03/06-03/12

一:

数组的动态静态方法

Student[] stu = new Student[20];//动态分配20个Student类型的数组空间
Student[] stu1= new Student[]{1,2,3,4,5,6,7}//静态分配数组
//注意:[数组个数]与{1,2,3,4,5,6}不可同时既是静态又是动态
//动静不可结合,这里不是语文古诗的越丰富越好

java中实体的使用中,一定是先创建对象。

Student s1= new Student();//创建Student的实体类对象s1

s1.后面跟的是实体类的属性。

  1. 栈与堆
    栈中存放的是局部变量,方法,在方法调用完之后栈中释放。栈中存放new 的对象的地址,并通过该地址找到堆中的具体实际对象空间。
    堆中存放的是[非static]对象的属性,成员变量,new的对象的空间是在堆中完成。

  2. 匿名对象

 new Person();

即为创建一个对象而不对它进行赋予名称,就是匿名。
匿名对象只能调用一次。
打个比方:房子 3602=new 房子();
这里是创建了一个新的房子对象,它的名字叫做3602.你可以根据3602找到。但是只是new 房子();使用一次之后,你没有任何途径恶可以将你之前使用过的对象找到。
匿名对象的使用用途

public class phone{
//属性
 int year;//手机的发行年份
 String name;//手机的型号
 
 //方法
 public void test(phone p1){
 if(合格的条件判定){
 syso("该产品合格");
 }else{
 syso("该产品不合格");
 }
 public static void main(String[] args){
 //匿名对象进行测试

}//此测试代码不完整


测试类的项目new 一个类A的实体类a在A的类方法中定义一个此时方法test.(B b)。则此时方法可以是a.test(new B());

a.test(new B());//匿名对象的测试
  1. 自定义的工具类:
    这里借鉴学习视频的教程代码:多试着自己动手尝试工具类的代码
import java.util.Scanner;
import java.util.*;

//自定义工具类
/**
 * CMUtility工具类, 将不同的功能封装成方法,就是可以通过调用方法使用它的功能,而不需要考虑 具体功能的实现细节
 */
public class CMUtility {
	private static Scanner scan = new Scanner(System.in);

	/**
	 * 用于界面菜单选择,该方法读取键盘,如果用户键输入1-5的任意字符,则方法返回
	 */
	public static char readMenuSelection() {
		char c;
		for (;;) {
			String str = readKeyBoard(1, false);
			c = str.charAt(0);
			if (c != '1' && c != '2' && c != '3' && c != '4' && c != '5') {
				System.out.println("选择错误,请重新输入:");
			} else
				break;
		}
		return c;
	}

	// 获取性别的方法
	public static char readChar() {
		String str = readKeyBoard(1, false);
		return str.charAt(0);

	}

	// 获取性别方法的重载
	public static char readChar(char defaultValue) {
		String str = readKeyBoard(1, true);
		return (str.length() == 0) ? defaultValue : str.charAt(0);

	}
	//获取年龄
	public static int readInt() {
		int n;
		for (;;) {
			String str = readKeyBoard(2, false);
			try {
				n = Integer.parseInt(str);
				break;
			} catch (NumberFormatException e) {
				System.out.println("数字输入错误,请重新输入:");
			}
		}
		return n;
	}

	//进行年龄修改使用的重载方法
	public static int readInt(int defaultValue) {
		int n;
		for (;;) {
			String str = readKeyBoard(2, true);
			if (str.equals("")) {
				return defaultValue;
			}
			try {
				n = Integer.parseInt(str);
				break;
			} catch (NumberFormatException e) {
				System.out.println("数字输入错误,请重新输入:");
			}
		}
		return n;
	}

	
	//基本类中的获取方法   通过工具类       实现
	public static String readString(int limit) {
		return readKeyBoard(limit, false);
	}
	
	//修改
	public static String readString(int limit, String defaultValue) {
		String str = readKeyBoard(limit, true);
		return str.equals("") ? defaultValue : str;
	}

	// 用于确认输入的方式
	public static char readConfirmSelection() {
		char c;
		for (;;) {
			String str = readKeyBoard(1, false).toUpperCase();
			c = str.charAt(0);
			if (c == 'Y' || c == 'N') {
				break;
			} else {
				System.out.println("选择错误,请重新输入");
			}
		}
		return c;
	}

	// 私有的静态方法
	private static String readKeyBoard(int limit, boolean blankReturn) {
		String line = "";
		while (scan.hasNextLine()) {
			line = scan.nextLine();
			if (line.length() == 0) {
				if (blankReturn)
					return line;
				else
					continue;
			}
			if (line.length() < 1 || line.length() > limit) {
				System.out.println("输入的长度有误不符合范围,请重新输入");
				continue;
			}
			break;
		}
		return line;
	}
	// source + format整理代码格式

}

  1. 重载
    重载:与返回值类型无关,只看参数个数与类型的。
sort(int  a);
sort(double b);
  1. 可变形参个数:
public void show(String... strs){
}

传入个数可以是多个。注意:可变个数形参,在方法形参中必须声明在末尾,并且最多只能声明一个。
应用场景:sql语句用户查询个数未知的情况下进行选择。
strs:形参可以看做是传递数组的首地址,可以使用for循环进行相关的查询结果的输出。
实例:

public class Test {
	
	public void show(String... strs){
		for(int i=0;i<strs.length;i++){
			System.out.print(strs[i]+"\t");
		}
	}

	public static void main(String[] args) {
		Test t1 =new Test();
		t1.show("wo","shi","yi ","ge","dsb");

	}

}

测试结果

wo	shi	yi 	ge	dsb

3 终止程序;System.exit(0);

三:面向对象

  1. 封装性与隐藏性
    封装性:类的成员变量类型设置为private;通过getset方法的调用来进行获取。
    private<default<protected<public
    不能直接.属性进行修改,而是通过接口方法的调用。
    封装性体现在:{私有化属性;对内使用私有化方法;单例模式}
    JAVA有以上4种权限,但是类只有两种:public private.

  2. 异常信息处理

throw  new RuntimeExcrption("信息输入错误");
  1. 类的成员变量(3/5):属性,方法,构造器
    构造器:本身系统默认提供,default无参数据类型
  2. this关键字的使用
    当类中方法的形参和类的属性相冲突的时候,用this关键字来表明当前对象本身。
    this:可以适用于属性,方法,和构造器。
    在构造器中,不能形成闭环的状态,n个构造器最多调用n-1个,声明在首行的位置;this.();并且仅仅是调用一次。
  3. 快捷键的使用熟悉操作:
alt+shift+s //构造器以及get,set方法和format代码排版
alt+up/down //整个代码块的上或者是下的移动
shift+回车键 //直接下一行
shift +回车键 + ctrl //直接上一行定位
home/and //行头行尾

import static 导入静态结构

import static.java.lang.Math*;//random()方法直接使用
import static.java.lang.System*;//out.println()方法直接使用

8.单例模式
构造器私有化
类与构造器的声明权限一致:public,default

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值