Java基础知识(二)
来源:互联网 发布:ip地址与域名的关系 编辑:程序博客网 时间:2024/06/10 05:00
数组
1.数组的定义
一维数组的定义int[] arrs;二维数组的定义int[][] darrs;
数组的初始化
静态初始化darrs = new int[][]{{1,2,3}, {4}, {7,8,9}}; 动态初始化darrs = new int[2][3];darrs[0] = new int[5];//给第一个元素初始化
2.方法
方法的调用
1、使用方法所属的类创建一个对象 A a = new A();
2、使用对象调用方法 a.methodName();
3、如果有返回值,那么可以选择接收返回值,也可以不接收
定义一个方法,方法名的首字母小写,碰到return直接结束整个方法
[修饰符1 修饰符2 …] 返回值类型 方法名([形式参数列表]){
方法体;
[return 返回值;]
}
判断年份是否为闰年的方法public boolean isRunYear(int year){ if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){ return true; } return false; }
3.类
类的访问控制权限共有两种(内部类除外,因为内部内的访问权限有四种):public和默认。默认级别的类只能被同一个包中的类看到,包外不可见。
/** * 描述狗的类 * @author Ken * */public class Dog { /** * 属性 -- 成员变量(全局变量) * @param args */ String name;//名字 int age;//年龄 String sex;//性别 /** * 行为 -- 方法 * @param args */ //描述了狗睡觉的行为 public void sleep(){ System.out.println(name + "在睡觉"); } //进食的行为 public void eat(){ System.out.println(name + "在啃骨头"); } //对eat方法进行重载 public void eat(String str){ System.out.println(name + "在吃" + str); } /** * 构造方法 -- 创建对象时调用 * 1、系统默认为每一个类创建一个无参的构造方法 * 2、构造方法也可以重载,重载的方式和普通方法一样 * 3、如果程序员手动的为类提供了构造方法,则系统默认的无参构造方法就消失了 * 4、通常如果提供了其他的构造方法,也会再提供一个无参的构造方法 * * 构造方法的作用:进行属性初始化 */ public Dog(){ } public Dog(String name, int age, String sex){ this.name = name; this.age = age; this.sex = sex; } /** * main方法 -- 程序的入口 * @param args */ public static void main(String[] args) { /** * 创建一个狗的对象 */ Dog dog;//定义一个Dog类型的变量,变量名叫dog dog = new Dog();//对变量dog初始化,通过Dog类的构造方法Dog()配合new关键字初始化 //合并 Dog dog = new Dog(); int i; i = 10; //int i = 10; }}
方法的重载:
1、如果有准确的参数列表,则匹配该方法
2、如果没有准确的参数列表,则匹配表数范围最接近该类型的类型(byte -> short -> int -> long -> floag -> double)
public class Computer { public int add(byte b1, byte b2){ System.out.println("byte"); return b1 + b2; }// public int add(int i1, int i2){// System.out.println("int");// return i1 + i2;// }// public long add(long i1, long i2){// System.out.println("long");// return i1 + i2;// } public float add(float i1, float i2){ System.out.println("float"); return i1 + i2; } public double add(double d1, double d2){ System.out.println("double"); return d1 + d2; } public static void main(String[] args) { Computer cp = new Computer(); cp.add(1, 2); }}
代码块,构造方法的相互调用
/** * 人 * @author Ken * */public class Person { /** * 属性 */ String name; int age; /** * 代码块 * 创建对象的时候被调用 * 通常用于对象的初始化 * 先于构造方法执行 */ { System.out.println("代码块被调用"); this.name = "张三"; this.age = 16; } /** * 构造方法 * @param name * @param age */ public Person(String name, int age){ this.name = name; this.age = age; } /** * 构造器的互相调用 * 1、必须在构造器的第一行调用另一个构造器 * 2、调用的语法this(); */ public Person(){ this("阿狗", 10); System.out.println("构造方法被调用"); } /** * 内部类 */ /** * 行为 -- 方法 */ public Person sleep(){ this.eat(); System.out.println("睡觉了"); return this; } public Person eat(){ System.out.println("吃饭了"); return this; } public void displayInfo(){ System.out.println("姓名:" + name); System.out.println("年龄:" + age); }}
匿名对象
public class Client { public static void main(String[] args) {// Person p = new Person("李四", 20);// p.displayInfo(); /** * 一个引用只能指向0个或1个对象 * 一个对象可以被0个或多个引用指向 */// Person p1 = new Person();// p1 = new Person();//p1指向另一个Person对象// Person p2 = p1;//让p2同样指向一个Person对象// p2 = null;// p1.name = "叶良辰";// System.out.println(p2.name); Person p = new Person("叶良辰", 16); Person p2 = new Person("叶良辰", 16); //链式编程 p.eat().eat().eat().eat().sleep(); /* * 匿名对象 -- 某一个对象只需要使用一次 new Person().eat().eat().eat(); new Person().eat(); */ }}
可变参数:表示可以接收0到N个参数
public class Test { /* * 可变参数:表示可以接收0到N个参数 */ public void test(int... i){ System.out.println("可变参数");// int[] arrs = i;// for(int arr : arrs){// System.out.println(arr);// }arrs } /* * 方法重载 * @param i */ public void test(int i){ System.out.println("一个int类型的参数"); } public static void main(String[] args) { Test t = new Test(); t.test(1,2,3); }}
成员变量:默认初始化
局部变量:要自己初始化
public class Test2 {// int age; //所以这里可以不赋值,默认是0 /** * 成员变量 * --默认初始化 */ int age; public void println(){ /* * 局部变量 * --不会自动初始化 */ int age = 0;//这里要赋值,要赋值,不然报错 System.out.println("age:" + age); } public static void main(String[] args) { Test2 test2 = new Test2(); test2.println(); }}
0 0
- java 基础知识(二)
- Java基础知识(二)
- Java 基础知识 (二)
- java基础知识(二)
- Java基础知识(二)
- Java基础知识(二)
- Java基础知识(二)
- java基础知识(二)
- Java基础知识(二)
- Java基础知识(二)
- JAVA 国际化基础知识(二)
- JAVA基础知识梳理(二)
- java基础知识加强(二)
- 新手java基础知识(二)
- java基础知识一览(二)
- java基础知识回顾(二)
- Java基础知识整理(二)
- Java基础知识复习(二)
- 如何把自己的tomcat添加到MyEclipse中
- 5、URL异常处理和HTTP状态码抛出异常
- VS2015卸载疑难解决 和 (VS2010)cvtres.exe不能删除及连接错误解决
- 从 http 升级到 https 过程中遇到的一些问题
- 浅谈Ajax解决浏览器的缓存问题
- Java基础知识(二)
- ubuntu中解压tar.xz文件
- 用System.currentTimeMillis输出可配置的任何时间
- shell脚本学习(持续更新)
- uva 524
- 初始C#--菜鸟成长日记
- Ubuntu 14.04安装Redis与简单配置
- leetcode 167. Two Sum II
- java web Servlet 连接数据库乱码