1.包的规范:
我们通常把公司的域名倒置过来,作为包的名字.
2.导入包的规范
如果我们把一个类,导入一个我们自定义的包中的时候。那么我们的JDK会自动生成对应包的名字。
3.引入包的规范
import <引入的包名>.<引入的类>
4.Scanner的规范
1.判断是否还有键盘输入
Scanner scanner=new Scanner(); scnner.hasNext() 或则 scnner.hasNextLine()
2.Scanner 用完之后要关闭h,否则占用内存
Scanner scanner=new Scanner(); scnner.close();
5.三角形的操作
6.方法的重载
1.方法的名字必须相同
2.方法的参数个数或类型必须不相同
3.方法的返回类型可以相同或则不相同
4.方法名称相同的时候,编译器会根据调用方法的参数个数,参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译报错
7.方法的可变参数
三个点,
8.画板的操作
mspaint 在cmd进行操作
9.递归
递归的两部分:
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。
递归体:什么时候需要调用自身的方法。
10.for 增强型
for加强只能实现全部信息输出,不会实现个别的输出.
package KuangStudy; public class JiuJiu { public static void main(String[] args) { int []arrays={1,2,3,4,5}; for(int array :arrays){ //前面的是变量,后面是数组 System.out.println(array); } } }
11.面向对象的编程
面向对象的本质就是:
以类的方式组装代码,以对象的组织(封装数据)
封装: 钱包 继承: 遗产 多态:面貌 从认识论角度来说:现有对象后又类,对像是具体的事物。类是抽象的, 是对对象的抽象. 从代码运行的角度来说:先有类后有对象。
构造方法:当我们创建一个对象的时候,就会默认调用依次构造函数 无参构造:当写无参的时候,可以不用写有参 有参构造:当写有参的时候,必须要写无参
封装: 我们程序应该追求 高内聚低耦合,高内聚就是类的内部数据操作细节自己完成, 不允许外部干涉。低耦合、;劲爆露少量的方法给外部使用, 数据的隐藏: 通常,应禁止直接访问一个对象中的数据的实际表示,而应该通过操作接口来访问, 这称为数据隐藏。 属性私有: private(属性) public get/set(进行设置和获得)
继承: 继承的本质是对某一屁勒的抽象,从而实现对现实世界更好的建模 extend的意思是"扩展".子类是父类的扩展 java 中类只有单继承,没有多继承 类与类之间的一种关系:除此之外,类和类之间的关系还有 以来,组合,聚合等 ctrl+h 打开族谱(object 祖宗类) super注意点: 1.super调用父类的构造方法,必须在构造方法的第一个 2.super必须只能出现在子类的方法或则构造方法中, 3.super和this不能同时调用构造方法! this 代表的对项不同 this:本身调用者的这个对象 super:戴白哦父类对象的应用 前提 this:没有继承也可以使用 super:只能继承条件才能使用 构造方法: this() 本类的构造方法 super() 父类的构造; (多态的关键)父类的引用可以指向子类 eg: 父类public class B{} 子类public class A extends B()(){} 在测试类中: A a=new A(); 父类的引用指向了子类 B b=new A();
多态: 即同一方法可以根据发送对象的不同而采用不同的行为方式. 即一个对象的实际类型是确定的,但可以指向对象的引用类型有很多. 实际类型 new student() new person(). 引用类型 student stu=new student(); person per=new student(); 多态注意事项: 1.多态是方法的多态,属性没有多态. 2.父类和子类必须要有联系。 3.存在条件:继承关系,方法需要重写,父类引用指向子类对象。 多态存在的条件: 1.有继承关系(extends) 2.子类重写父类的方法() 3.父类引用指向子类对象 (对象能执行哪些方法,主要看对象左边的类型,和右边的关系不大,也就是说只看 等号左边的。)
父类不能直接调用子类的方法,如果想调用子类的方法,那么我们需要(高转低)强制转换 (和数据类型的强制转化的模式一样)。
多态EG : 1. package KuangStudy; public class Test { public static void main(String[] args) { Student student = new Student(); //引用类型指向子类 Person person = new Student(); Object object=new Student(); //引用类型调用父类 person.run(); //调用的是person父类中的函数 //进行重载 person.run(); //子类重写了父类,执行子类的方法 student.run(); } } 2. package KuangStudy; public class Person { public void run(){ System.out.println("人类"); } } 3. package KuangStudy; public class Student extends Person{ public void run(){ System.out.println("学生"); } public void Kill(){ System.out.println("kill"); } }
重载与重写: 重写:需要有继承的关系,子类重写父类的方法!(static.finnal.private不可被 重写) 1.方法名必须相同 2.参数列表必须相同 3.修饰符:范围可以扩大: public>protected>default>private 4.抛出的异常: 范围可以被缩小,但不能被扩大(损失) 5.子类的方法和父类必须一致,只不过是里面的方法体不同 eg: Panel 类中的方法 public void paint(){} 这里是什么 下面也是什么 如果我们对其重写的话: public void paint(){} 、 ================================================================= 重载: 1.方法的名字必须相同 2.方法的参数个数或类型必须不相同 3.方法的返回类型可以相同或则不相同 4.方法名称相同的时候,编译器会根据调用方法的参数个数,参数类型等去 逐个匹配,以选择对应的方法,如果匹配失败,则编译报错 =================================================================== 静态方法()和非静态方法 因为静态方法是类的方法,而非静态是对象的方法 有static时,b调用了b类的方法,因为b是b类定义的 没有static时,b调用的是对象的方法,而b是用A类的new的 即b是A new出来的对象,因此调用了A的方法 static 最先执行
12.内部类
定义: 在一个类中,继续写一个类。那么这个类就叫做内部类. 外部类的调用内部类的方法: 【内部类所在类的类名.内部类对象】 对象名=【内部类所在类的对象名.new 内部类名();
13.异常处理
1.检查时异常 (检索时发现 ) 2.运行时异常 (能运行,但有错) 3.错误异常error (栈溢出,等等) try (尝试) catch (捕获异常)-------Throwable(最大) ---error-----expection---- finally(最后执行)