java笔记

这篇博客涵盖了Java的基础知识,包括数组、类与对象的概念,深入讲解了类的继承、抽象和异常处理。还介绍了Java提供的核心包如java.lang和java.util,以及输入输出流和图形化界面的相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组

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</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值