类与对象初识
什么是类?
1、类本身不占用内存空间,只有当类创建对象时,对象占用内存空间
2、类可以认为是创建对象的模板、蓝图。所有的对象都是通过自身类构建的
3、类是将部分实体或一类事物的动态特征和静态特征组成的一种结构
4、类是java程序中最小的执行单元,面向对象思想(python 面向对象+函数式编程)
5、一个源文件不能代表一个类,因为一个源文件中能有多个类,只能有一个类是public类
6、类名首字母大写,使用class关键字修饰
什么是对象?
1、对象是通过类实例化来的来的 ,要占用内存空间
2、类可以看作是对象的抽象概念,对象看作是类的一个实例
3、关心与程序运行的特征
4、构建对象:类名 对象名=new 类名 ();
5、类对象实例化不只可以通过new,还能通过clone(克隆)、反射的:newInstance()、代理: Proxy.newInstance();
类中的成员变量和方法中的变量有什么不同?
1、成员变量是具备默认值的,方法中的变量没有初值
数值类型的默认值:0 布尔类型的默认值:fault String类型的默认值:null 数组类型的默认值:null
2、成员变量可以用 static public private default(默认) protected等修饰符来修饰
3、成员变量可以赋初值,但不能在方法外进行逻辑操作;
访问修饰符介绍:
1、Java中访问修饰符主要包括:public private protected default(默认)
2、private只能被本类访问,protect与default(默认)可以被同一个包的类访问,但不能跨包,public可以跨包
什么是方法?
1、方法的定义
权限修饰符 返回值类型 方法名(参数类型 参数名){
方法体
return 返回值
}
2、函数执行结束后的结果类型 void 代表为空返回值
3、方法中有返回值需使用return返回值,return后方法将终止,后面不能跟代码
4、返回值类型需和方法返回的值类型一致,不一致则自动转换或需要强制转换
5、方法执行的必要条件:参数的数据类型,顺序,个数必须与定义的方法一致
6、空指针不能调用任何方法
7、方法的好处 *提高代码的复用性 *提升开发效率 *可读性强 *结构化程序,优化结构,减少冗余代码
8、this:当前类对象,谁调用它就是谁
对象数组的介绍:
1、类名 [ ] 数组名 =new 类名 [ 数组长度 ]; 默认各元素为空
2、数组中的元素是该数组类型的类创建的对象;
3、调用对象的成员变量或方法: 数组名[ n ] . 成员变量(成员方法)
1 package test02; 2 import java.util.Scanner; 3 4 public class test02 { 5 public static void main(String[] args) { 6 String student []=new String[11]; 7 Scanner input=new Scanner(System.in); 8 Xueyuanchaxun xueyuanchaxun=new Xueyuanchaxun(); 9 do{ 10 System.out.println("请添加学生姓名:"); 11 String name=input.next(); 12 xueyuanchaxun.add(student, name); 13 System.out.println("是否继续添加:(Y/N)"); 14 if(input.next().equals("N")) break; 15 16 }while(true); 17 18 System.out.println("显示本班学员:"); 19 xueyuanchaxun.show(student); 20 21 System.out.println("请输入要查询该学生的姓名:"); 22 String stuName=input.next(); 23 System.out.println("请输入要查询的区间下限:"); 24 int low=input.nextInt(); 25 System.out.println("请输入要查询的区间上限:"); 26 int high=input.nextInt(); 27 28 xueyuanchaxun.search(student, low, high, stuName); 29 } 30 }
1 package test02; 2 public class Xueyuanchaxun { 3 //添加学生 4 void add(String shuzu[],String name){ 5 for(int i=0;i<shuzu.length;i++){ 6 if(shuzu[shuzu.length-2]!=null){ 7 System.out.println("本班已满,不能继续添加!"); 8 break; 9 } 10 if(shuzu[i]!=null) 11 continue; 12 shuzu[i]=name; 13 break; 14 } 15 } 16 17 //显示学员 18 void show(String shuzu[]){ 19 for(int i=0;i<shuzu.length;i++){ 20 if(shuzu[i]==null) 21 break; 22 System.out.println(shuzu[i]); 23 } 24 } 25 //区间查找 26 void search(String shuzu[],int a,int b,String name){ 27 int c[]=new int[b-a+1]; 28 int j=0; 29 for(int i=a;i<=b;i++){ 30 if(shuzu[i-1].equals(name)){ 31 c[j]=i; 32 j++; 33 } 34 } 35 if(j==0) 36 System.out.println(a+"到"+b+"区间内没有"+name+"这位学员!"); 37 else{ 38 System.out.println(name+"所在的位置为:"); 39 for(int i=0;i<j;i++){ 40 System.out.println(c[i]+" "); 41 } 42 } 43 } 44 }