菜单

Java 随心笔记7

2018年11月20日 - jQuery

1.修改 list.get(i).name = name_1;
一、封装
1.成员变量增加private,在另类看成员变量,无法访问
2.无关成员方法,因为方法还因此public来修饰
作用:
1、提高了代码的复用性。
2、隐藏了贯彻细节,还要对外提供好拜的法。便于调用者的利用。这是骨干之一,也堪掌握呢即是包裹的概念。
3、提高了安全性。

提问:
1.办法还写及办法重载的分别?方法重载能转返回值类型吗?
Overload(方法覆盖)在子父类中,出现了措施生命一样之情况
注意事项: 1.子类的点子声明如跟父类相同,
2.子类的重写方法的章程,方法的权柄修饰付不克比较父类更低。
3.父类私有的法,子类不能够进行艺术重写。
Override(方法重载)
意思:在跟一个像样中,多单艺术名称相同,它们的参数列表不同(个数不同,数据类型不同)

通过set赋值,get取值;

2.this第一字与super关键字分别表示什么?以及他们分别的采取状况以及意向。
this:
调用构造方法:this(参数列表)
分子变量名前加上this.来区别成员变量和部分变量

分子变量:
1.成员变量系统会自动提供初始化值
2.this:泛指对象,具体指谁目标,不确定;谁调用this,this就代表它;
3.this.来组别成员变量和组成部分变量
仲、类的结构:
1.分子变量
2.分子方法
3.一个或多独构造方法
构造方法:class Student{
public Student{

super:
调用本类中的构造方法 this(实参列表);
调用父类中之空参数构造方法 super();
调用父类中之生参数构造方法 super(实参列表);

}

 

}
作用:提供初始化值

一、final关键字

 

final修饰变量就改成了常量,只能赋值一坏;
final修饰类,类不可知叫连续
final修饰方法,方法无能够让再次写

  1 /*
  2     实现类的封装,set,get的编写    
  3     实现简单的增删改查的功能,如有错误请及时指正,
  4     欢迎和我一起探讨。
  5 */
  6 import java.util.*;
  7 class studentDemo 
  8 {
  9     public static void main(String[] args) 
 10     {    
 11         choose();
 12         //System.out.println("Hello World!");
 13     }
 14     public static void list(){
 15         System.out.println("1.查看学生信息"+"\n"+"2.修改学生信息"+"\n"+"3.添加学生信息"+"\n"+"4.删除学生信息"+"\n"+"5.退出系统");
 16     }
 17     public static void choose(){
 18         ArrayList<Students> list = new ArrayList<Students>();
 19         int_0(list);
 20         while(true){
 21             list();
 22             switch(new Scanner(System.in).nextInt()){
 23                 case 1:int_1(list);break;
 24                 case 2:int_2(list);break;
 25                 case 3:int_3(list);break;
 26                 case 4:int_4(list);break;
 27                 case 5:System.out.println("您已成功退出");return;
 28                 default :System.out.println("请输入正确的序号");return;    
 29             }
 30         }
 31     }
 32     //实例化
 33     public static void int_0(ArrayList<Students> list){
 34         Students s = new Students("黄渤",101,99.3);
 35         Students s1 = new Students("邓超",102,93.3);
 36         Students s2 = new Students("孙俪",108,99.9);
 37         list.add(s);
 38         list.add(s1);
 39         list.add(s2);
 40     }
 41     //1键功能
 42     public static void int_1(ArrayList<Students> list){
 43         for(int i = 0;i<list.size();i++){
 44             System.out.println("姓名"+ list.get(i).getName() +"\t"+"学号"+ list.get(i).getXuehao() +"\t"+"\t"+"成绩"+ list.get(i).getSecord() +"\t");
 45         }    
 46     }
 47     //2键功能修改
 48     public static void int_2(ArrayList<Students> list){
 49         System.out.println("请输入您想要修改的姓名:");
 50         String name = new Scanner(System.in).next();
 51         for(int i = 0;i<list.size();i++){
 52             if(name.equals(list.get(i).getName())){
 53                 System.out.println("您想更正的姓名");
 54                 list.get(i).setName(new Scanner(System.in).next()) ;
 55                 System.out.println("您更改的学号是");
 56                 list.get(i).setXuehao(new Scanner(System.in).nextInt());
 57                 System.out.println("您更改的成绩是");
 58                 list.get(i).setSecord(new Scanner(System.in).nextDouble());
 59                 System.out.println("更改成功");
 60                 return;
 61             }
 62         }
 63         System.out.println("请正确输入:");int_2(list);return;
 64     }    
 65     //3键功能
 66     public static void int_3(ArrayList<Students> list){
 67         Students s = new Students();
 68         System.out.println("请输入你想要增加的姓名");
 69         s.setName(new Scanner(System.in).next());
 70         System.out.println("您增加的学号是");
 71         s.setXuehao(new Scanner(System.in).nextInt());
 72         System.out.println("您增加的成绩是");
 73         s.setSecord(new Scanner(System.in).nextDouble());
 74         list.add(s);
 75         System.out.println("增加成功");
 76         return;
 77     }
 78     //4键功能
 79     public static void int_4(ArrayList<Students> list){
 80         System.out.println("请输入您想删除的姓名");
 81         String name = new Scanner(System.in).next();
 82         for(int  i  =  0 ;i<list.size();i++){
 83             if(name.equals(list.get(i).getName())){
 84                 list.remove(i);
 85                 System.out.println("删除成功");
 86                 return;
 87             }
 88         }
 89         System.out.println("请正确输入:");int_4(list);return;
 90     }
 91 }
 92 class Students
 93 {
 94     private String name;
 95     private int xuehao;
 96     private Double secord;
 97     //无参
 98     public Students(){}
 99     //有参
100     public Students(String name,int xuehao,Double secord){
101         this.name = name;
102         this.xuehao = xuehao;
103         this.secord = secord;
104     }
105 
106     //get set Name
107     public String getName(){
108         return this.name;
109     }
110     public void setName(String name){
111         this.name = name;
112     }
113 
114     //get set xuehao
115     public int getXuehao(){
116         return this.xuehao;
117     }
118     public void setXuehao(int xuehao){
119         this.xuehao = xuehao;
120     }
121 
122     //get set secord
123     public void setSecord(Double secord){
124         this.secord = secord;
125     }
126     public Double getSecord(){
127         return this.secord;
128     }
129 }

二、多态:
a有继承关系
b有艺术重写
c父类的援指向子类的对象
小结:用几近态实例化的凡父类
无须多态实例化的是子类。

 

a instanceof b,

向上 向下

三、抽象类
格式: 类:abstract class 类名
抽象类的法门可是虚幻的啊可以是非抽象的。
方法:public abstract void 方法名();
特色: 1.华而不实类和虚空方法还要下abstract来修饰
2.虚无类非克直接创建对象
3.泛类中得以起抽象的艺术,也可以没有抽象的不二法门
4.抽象类的子类 a.实现了抽象方法的具体化,b.抽象类

四、接口:
定义 interface 接口名{}
接近和接口 class 类名 implements 接口名{}
实例化:按照多态的实例化
成员变量:只能是常量(默认修饰符是public static final )
构造方法:没有构造方法,其根本是进展功能的恢宏
成员方法:只能是纸上谈兵的法,默认修饰符是 public abstract

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图