类与对象初识

 

什么是类?

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 }

 

posted @ 2019-05-28 19:17  道友请留步~  阅读(149)  评论(0编辑  收藏  举报