Java学习笔记_No.1

第一章 java语言概述

  • 语言诞生发展:

关键词:Oak、Sun公司、Oracle公司
Java出现于1995年

  • 语言特点:

①简单性;②面向对象;③分布性;④健壮性;⑤安全性;⑥体系结构中立;⑦可移植性;⑧解释型语言;⑨高效性;⑩多线程机制;11动态性

Java三大平台
在这里插入图片描述

  • Java程序的编译与运行(半编译半解释)

在这里插入图片描述

  • java程序的种类,Application的结构

在这里插入图片描述

Java Application,即Java应⽤程序,是⽤Java语⾔编写的通过独⽴的Java解释器来解释运⾏的完整的桌⾯应⽤程序,可⽤字符界⾯和图形界⾯进⾏显⽰输出,代码中必须包含main()⽅法作为程序运⾏的⼊⼝。

  • 一个良好的JAVA程序包括:
package 语句(01句),
import 语句(≥0),导入其他类的类库,
类定义——class(≥1),
一个文件只能有一个public(与文件同名)

第二章 java语言开发环境

  • 开发环境下载、安装、配置、简单输入输出代码,并编译运行

在这里插入图片描述

在这里插入图片描述

public class & class

  • 一个Java源文件当中可以定义多个class
  • 一个Java源文件当中public的class不是必须的
  • 一个class会定义生成一个xxx.class字节码文件
  • 一个java源文件当中定义公开的类的话,只能有一个,并且该类的名称必须和java源文件名称一致
    每一个class当中都可以编写main方法,都可以设定程序的入口,想执行B.class中的main方法:java B,想执行x.class中的main方法:java x

第三章 java语言基础

数据类型、关键字和标识符、常量与变量、数据类型转换、运算符与表达式

  • 数据类型分为基本数据类型引用数据类型
  • 标识符命名规则
    ① 标识符只能由数字、字母、下划线“_”、美元符号“$”组成,不能含有其它符号。
    ② 标识符不能以数字开始。
    ③ java 关键字和保留字不能作为标识符。
    ④ 标识符严格区分大小写。
    ⑤ 标识符理论上没有长度限制。

数值型数据的转换:byte→short→int→long→float→double。

字符型转换为整型:char→int。

以上数据类型的转换遵循从左到右的转换顺序,最终转换成表达式中表示范围最大的变量的数据类型。

  • 数值型数据类型转化:自动类型转换强制类型转换
    字符串型数据与数值型数据相互转换
String MyNumber = "1234.56";
float MyFloat = Float.parseFloat(MyNumber);
s = s + Integer.parseInt(data[i]);
int MyInt = 1234//定义整形变量MyInt
String MyString = "" + MyInt//将整型数据转换成了字符串 

易错题

给划线部分选择正确的答案:
____method(byte x, double y){
	return (short)x/y*2;
} D.double

第四章 流程控制

分支语句:if 、 if…else 、 if…else if 、 switch…case
循环语句: while do…while for
跳转语句: break continue


第五章 数组与字符串

一维数组的声明、初始化、引用、增强for

int[ ] anArray; //声明
anArray = new int[10];//创建(为数组分配内存)
合并:
int[] anArray = new int[10];
  • 增强型for循环定义如下:

for(ElementType element: arrayName){};

int[] num = {1,2,3,4,5,6};
for(int i: num){//i 是代表 num[i]
  System.out.print(i);
}

二维数组的声明、初始化、引用、length的属性用法

int[][] arrayname = {{}, {}, {}};
arrayname.length 一维数组的个数
arrayname[i].length 第i行子数组的长度

字符串:length() split()、replace()、trim ()等方法
 string.length()是用来求字符串的长度,返回值为字符串的长度。
 string.trim()是用于删除字符串的头尾空白符(只有头和尾)
 string.toCharArray()为将字符串转换为字符数组。
 string.replace()为将原string 中的元素或子串替换。返回替换后的string。

String replaceStr = str.replace('a', 'b');

string.split():分割字符串

String s1 = "a,b,c";
String[] _s1 = s1.split(",");

System.out.print("s1调用split方法后的结果为:");
for (String s : _s1) {
	System.out.print("\"" + s + "\"" + "\t");
}

toString()返回该对象的字符串表示(object类)


第六章 类与对象

  • 类的基本概念

类是把事物的数据与相关的功能封装在一起,形成的一种特殊结构,用以表达现实世界的一种抽象概念

  • 类的定义 基于写程序
  • 访问控制符 包
    类的访问控制符或者为public,或者默认。
    在这里插入图片描述
  • 字段 字段封装

字段(Field),是 Java编程语言中类的一个成员,主要用来存储对象的状态(如同某些编程语言中的变量),所以有时也可称为成员字段成员变量

在类中有下列几种变量(Variable):
类中的成员变量,称为字段
代码块中的变量,称为局部变量。
方法和构造方法声明中的变量,称为参数。
局部变量和参数始终被归类为“变量”(而不是“字段”)。

封装是指把变量和方法包装在一个类内,以限定成员的访问,从而达到保护数据的一种技术。

封装字段重构代码的一种操作,是通过一对存取方法访问字段。存取方法也称为读/写方法gettersetter方法。

  • 方法 方法的返回值 参数

JAVA把数据成员称为成员变量,把函数成员称成员方法,成员方法简称方法

  • 方法重载(重载的定义)

重载是实现多态的一种方法,在面向对象的程序设计语言中,有一些方法的含义相同,但带有不同的参数,这些方法使用相同的名字,这就叫方法的重载

名称相同、参数的列表必须不同(参数个数不同、或参数类型不同、或参数顺序不同)

  • 构造方法
  1. 作用(初始化对象):在对象被创建时初始化对象成员的方法。

  2. 定义(和类名相同,没有返回值),不用void修饰

  3. 默认构造方法 :编译系统自动生成

  4. 构造方法重载:可以让用户用不同的参数来创建对象

  5. 构造方法调用另一个构造方法
    通过this()语句实现

例子:
public Cylinder() {
	this(2.5, 5, "红色");//必须写在构造方法内第一行位置
	System.out.println("lyh");
}
public Cylinder() {
	System.out.println("LYH");
	radius = r; 
	height = h;
	color = str;
}
  • 静态成员
    static称为静态修饰符,被他修饰的成员称为静态成员,也被成为类成员,不用static修饰的成员称为实例成员

  • 静态初始化器
    更好的初始化静态域的方法是静态初始化器。静态初始化器也是一个方法,但是它没有方法名。当静态初始化器所在类第一次被使用时,静态初始化器首先被调用,而且仅此一次而已,以后不管这个类被使用多少次,静态初始化器都不会再被调用,

静态初始化器定义形式是:
static {
	//静态域初始化语句
}
  • 静态变量(类变量)(类似全局变量):独立与方法之外

  • 静态方法
    ① 不被任何一个对象所专有;
    ② 他只能访问类变量,或调用staitic成员方法,静态方法中不能访问实例变量和实例方法。
    ③ 不能使用thissuper

  • 对象的应用
    类类型的变量作为方法参数或返回值
    对象数组作为参数

  • 匿名对象

匿名就是没有名字的对象,在创建对象时,只通过new的动作在堆内存开辟空间,却没有把堆内存空间的地址值赋值给栈内存的某个变量用以存储

//正常对象
Student lyh = new Student();
//匿名对象:
new Student()

第七章 继承、抽象类、接口和枚举

  • 继承的概念:实现代码的复用,被继承的类称为父类(超类),由继承的类称为子类。
  • 语法定义
 class SubClass extends SuperClass {
	...
}
  • 多态性:重载和覆盖
    ① 字段 可以(继承、隐藏、添加)
    ② 方法可以(继承、覆盖、添加、重载)

覆盖与重载类似,不同之处是名称、参数列表均与父类完全相同的方法名,用以重写父类中同名方法的功能。

在Java中有方法的重写,没有属性/字段的重写,准确的来说,是隐藏字段代替了重写

重写、隐藏经典例题

  • 构造方法 super用法
    ①访问父类的构造方法;
    ②访问父类的成员变量(super.变量名)和成员方法(super.方法名);
    ③但不能访问在子类添加的成员;
    ④不能访问父类private成员,protected即可

  • Final类 不可被继承

  • Object是所有类的根类

  • 抽象类:创建专门的类作为父类 abstrct
    可参考继承和多态练习

  • 接口:可以实现多重继承 interface
    亦可参考继承和多态练习

[public]interface 接口名称 [extends 父接口名称名列表] {
	[public][static][final] 数据类型 成员变量名 = 变量;
	[public][abstract] 返回值的数据类型 方法名(参数表);
	[public] static 返回值的数据类型 方法名(参数表){
		方法体;
	}
	[public] default 返回值的数据类型 方法名(参数表){
		方法体;
	}
}

第八周 异常处理

例题点击

  • 异常处理的相关类 Throwable
    在这里插入图片描述
  • 异常的捕获 try...catch(try后面可以跟多个catch来处理try块里面生成的异常事件)
    try...finally
    try...catch...finally
    throw (直接抛)
    throws(间接抛)
 try {
	...
} catch(Exceptionl e1) {
	...
} catch(Exception2 e2) {
	...
} finally {
	...
}

finally 是强制性语句,不管有没有异常,不关try语句块是否含有break\return\throw,都要执行

异常中的finally一定会执行,哪怕一个方法中有return语句,也是在异常处理后才返回

异常处理后,程序继续执行


杂七杂八的知识点:

int x=-3; int y=-10;  System.out.println(y%x); A. -1
  • &&(短路与 表示短路与运算)和&(逻辑与)
  • 方法的签名由方法的名称参数列表组成。
  • 抽象类不能用final修饰

定义一个Circle类,包含一个常量PI=3.14,一个私有属性r,一个公共构造方法和一个公共计算面积的方法getarea();
定义一个圆柱体Cylinder类,继承自Circle类,包含1个私有属性height,一个公共构造函数方法和一个公共计算体积volume的方法;
编写一个测试类Test,从键盘接受圆柱体的半径和高,并输出底面积和体积。

import java.util.*;

public class Test {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		double r=sc.nextDouble();
		double h=sc.nextDouble();
		Cylinder cy=new Cylinder(r,h);
		double s=cy.getArea();
		double v=cy.volume();
		System.out.println("s="+s+";v="+v);
	}
}

class Circle{
	final double PI=3.14;
	private double r;
	Circle(double R){
		this.r=R;
	}
	double getArea() {
		return PI*r*r;
	}
}

class Cylinder extends Circle{
	private double height;
	Cylinder(double R,double height) {
		super(R);
		this.height=height;
		// TODO Auto-generated constructor stub
	}
	double volume() {
		return getArea()*height;
	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值