文章目录
数组
int[] a = new int[n];
for(i=0;i<n;i++) {
a[i]=in.nextInt();
}
块作用域
i在其他地方是不能被识别的
java不允许内层里再定义j
break outer语句跳出标号outer所表示的循环
在这里插入图片描述
类与对象
一个类是一个蓝图或原型,它定义了某一特定种类对象都具有的变量与方法。
Object的变量可以指向任何对象
多态性
python 不怎么用多态,不怎么讲继承关系,鸭子类型,只要像鸭子,就可以调用。只要接口一样,就可以调。
面向对象的主要特点
也可以作为判断是不是面向对象的标准
封装性 ; 继承性 ;多态性:一个接口提供不同的操作。
extends 代表继承
【public】[abstract | final]
方法相当于函数
super.x
class A1{
int x =2;
public void setx(int i) {
x = i;
}
void printa() {
System.out.println(x);
}
}
class B1 extends A1{
int x = 100;
void printb() {
super.x =super.x +10;
System.out.println("super.x="+super.x + "x="+x);
}
}
public class Main{
public static void main(String[] args) {
A1 a1 = new A1();
a1.setx(4);
a1.printa();//1
B1 b1 = new B1();
b1.printb();//2
b1.printa();//3
b1.setx(6);//将继承来的x值设置为6
b1.printb();//4
b1.printa();//5
a1.printa();//6
}
}
输出
4 //1
super.x=12x=100//2
12//3
super.x=16x=100//4
16//5
4//6
employee
public class Employee
{
private String number;
private String name;
public Employee(String numberIn, String nameIn)
{
number = numberIn;
name = nameIn;
}
public void setName(String nameIn)
{
name = nameIn;
}
public String getNumber()
{
return number;
}
public String getName()
{
return name;
}
}
public class PartTimeEmployee extends Employee
{
private double hourlyPay;
public PartTimeEmployee(String numberIn, String nameIn, double hourlyPayIn)
{
super(numberIn, nameIn);//调用父类构造方法
hourlyPay = hourlyPayIn;
}
public void setHourlyPay(double hourlyPayIn)
{
hourlyPay = hourlyPayIn;
}
public double getHourlyPay()
{
return hourlyPay;
}
public double calculateWeeklyPay(int noOfHoursIn)
{
return hourlyPay * noOfHoursIn;
}
}
public class EmployeeTest {
public static void main(String[] args) {
Employee emp=new Employee("1001","Jack");
PartTimeEmployee pEmp=new
PartTimeEmployee("1002","Susan",20.5);
System.out.println("hello"+emp.getName());
//子类可以直接使用父类中定义的可见性为public的方法
System.out.println("hello"+pEmp.getName());
System.out.println(pEmp.getName()+",your weeklyPay is:"+ pEmp.calculateWeeklyPay(20));
}
}
异常
非检查性异常:
ArithmeticException
整数除法中除数为0
NullPointerException
访问的对象还没有实例化
NegativeArraySizeException
创建数组时元素个数是负数
ArrayIndexOutOfBoundsException
访问数组元素时,数组下标越界
ArrayStoreException
程序试图向数组中存取错误类型的数据
检查型异常:
FileNotFoundException
试图存取一个并不存在的文件
IOException
通常的I/O错误
组合与继承
Java的类中可以有其他类的对象作为成员,这便是类的组合
组合的语法很简单,只要把已存在类的对象放到新类中即可
可以使用“has a”语句来描述这种关系
例如,考虑Kitchen类提供烹饪和冷藏食品的功能,
很自然的说“my kitchen 'has a' cooker/refrigerator”。
所以,可简单的把对象myCooker和myRefrigerator放在类 Kitchen中。
格式如下
class Cooker{
// 类的语句 }
class Refrigerator{
// 类的语句}
class Kitchen{
Cooker myCooker;
Refrigerator myRefrigerator;
}
一条直线是由两个点组成的
public class Point //点类
{
private int x, y; //coordinate
public Point(int x, int y) {
this.x = x; this.y = y;}
public int GetX() {
return x; }
public int GetY() {
return</