一、重点知识
1、父类的私有方法的继承问题,实际上继承了但未调用
2、如何理解:当我们通过子类的构造器创建子类对象时,我们一定会直接或间接的调用其父类的构造器,进而调用父类的父类的构造器,...直到调用了java.lang.Object类中空参的构造器为止。
因为你只有创建子类时候选择构造器,后面的都是默认的,所以最后调用的一定是无参的构造器
3、super在构造器中最多存在n个最少一个,而this关键字最多存在n-1个,最少零个
4、父类最好要有一个空参的构造器,因为super的存在,如果无空参构造器,创建子类时会报错,解决方法有两种,一在父类中加一个空参构造器,二,子类定义构造器时候指定调用父类的有参构造器(记得要把你调用的父类的构造器的参数也加进来)
5、其实父类中的全部变量在子类的内存空间中都有,但是父类的私有方法不能直接调用而已,但是可以通过其他方式调用,也能在构造器中调用,方法也是这么个道理
6、特殊情况:子类不能重写父类中声明为private权限的方法,如果按照重写的方法,去重写父类的方法,不会报错,但是相当于自己重新创造了一个方法,不能算为重载。
7、创建一个对象后 当调用其他类的属性在调用时要赋值
8、打印图形没有规律时,可以把行数扩大两倍再找规律
9、继承时候也要导入包
10、在静态方法中,不能直接访问非静态成员(包括方法和变量)。因为,非静态的变量是依赖于对象存在的,对象必须实例化之后,它的变量才会在内存中存在。例如一个类 Student 表示学生,它有一个变量String address。如果这个类没有被实例化,则它的 address 变量也就不存在。而非静态方法需要访问非静态变量,所以对非静态方法的访问也是针对某一个具体的对象的方法进行的。对它的访问一般通过 objectName.methodName(args……) 的方式进行。而静态成员不依赖于对象存在,即使是类所属的对象不存在,也可以被访问,它对整个进程而言是全局的。因此,在静态方法内部是不可以直接访问非静态成员的
11、参数
形参:声明方法时,用于接收外部传入数据的变量
实参:在调用方法时,传给形参的实际数值
实参是按照顺序一一对应匹配给形参的
12、声明的返回值类型,和实际返回的数值的类型要匹配。但不一定要一样,因为自动类型提升的存在
13、return 后面不能再写语句
14、有返回值类型的方法一定要有return 所以return写在条件语句里也一定要确定能被执行到,不是你觉得可以被执行到,因为java不是识别数据后在判断,你要保证逻辑上的一定被执行
15、如果一个方法有返回值,那么只能返回一个
二、重点问题
一注意设计一个方法,方法形参中定义的与属性名字相同的局部变量,在方法中用的也是你定义的局部变量,如果想用类中的属性要用this关键字
int age;
public static void main(String[] args) {
HomeWork test = new HomeWork(); test.put(10);
public void put(int age){
System.out.println(this.age);//结果为0 如果输出语句中用的是age则结果是10
}}
二、新思路:在for循环中的if判断语句中,如果判断不正确,可以用i--重新录入此次结果,不需要用break,kreak重新跳出循环了,要重新执行一次程序了,而i--不需要,就很巧妙,因为for循环的循环执行体一定会执行迭代操作。
import java.util.Scanner;
public class HomeWork {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
int sum = 0;
for(int i = 1;i <= 5;i++){
int a = scanner.nextInt();
if(a >0){
sum += a;
}else{ System.out.println("请重新输入"); i--; } } } }
三、课堂知识
3.1 参数
什么是参数?当前方法执行的时候所需要的外部(调用处)传入的数据。
形式参数:简称叫形参。声明方法的时候,用于接收外部传入的数据。
实际参数:简称叫实参。调用方法的时候,给形参所赋值,实际的数据。
调用方法的时候,用实际参数给形式参数进行赋值,这个过程被称为传参。(参数传递:实参-->形参)
1、当我们在设计一个方法的时候,要看方法中有几个数值无法确定,需要由调用处传入,那么就设计几个参数。多个参数之间使用,分隔开。
2、方法调用的时候:实参一定一定严格匹配形参:实参是按照顺序一一配给形参。个数,类型,顺序,严格匹配。
3.2 返回值
1、什么叫返回值?
返回值:表示一个方法执行之后,需要返回给调用处的结果。需要在调用处声明一个变量,来接收这个结果。
返回值的注意点:
A:一个方法可以有返回值,也可以没有。
如果有,那么返回值的类型,要在声明声明方法的时候写清楚,如果没有返回值就写void(空的)。
public 返回值类型/void 方法名(形式参数){
方法体;
}
B:如果一个方法有返回值,那么只能返回一个。
C:如果一个方法声明了有返回值,那么在方法中,必须使用return语句将数值返回。
3.3 return语句
return语句有两个作用
1、将一个方法的结果返回给调用处。
2、结束该方法的执行。
return语句的注意点:
A:一个方法声明了有返回值,那么方法中必须使用return关键字将结果返回给调用处。
B:一个方法声明了有返回值,那么方法中如果有分支,循环语句等,要保证无论执行哪个分支,都要有return语句可以被执行到。
C:一个方法声明了有返回值,那么return后的数值必须和声明的数据类型一致。(自动转型)
D:一个方法如果没有返回值,那么也可以使用return语句,结束方法的执行。
E:习惯上return后没有语句了。
3.4 方法的分类
1.无参无返回值的方法:
public void methodName(){
}
2.有参无返回值的方法:
public void methodName(形式参数){
}
网友评论