Java自学笔记2
文章目录
前言
第二次学习笔记,加油加油!
第二章 变量
一、概念
变量是计算机中一块特定的内存空间,由一个或多个连续的字节组成
二、数据类型
1、整数类型(int、short、long、byte)
int(整型):最常用
short(短整型):表示范围较小,适用于一年的天数、年龄数、微信群或QQ群人数等
long(长整型):表示范围较大,适用于国家GDP总额等数值较大的
byte(字节型):用于存放二进制数据
2、浮点数类型(float、double)
float(单精度浮点型):存储位数较少的小数(有效数字7位)
double(双精度浮点型):用于保存较长的小数
3、其他基本类型(boolean、char)
boolean(布尔类型):取值只有true和false
char(字符类型):用于保存单个字符,可以保存转义字符(’\b’,’\t’,’\r’,’\n’)
4、字符串类型(String)
用于存储文字类信息,不属于基本类型
5、注意
对于精确的超大型数据计算比如天文数据(一般指64位以上的数据运算),一般不会采用基本数据类型,而采用BigInteger或BigDecimal类型的数据进行精确计算
三、转义序列与格式化输出
1、转义序列
2、格式化输出
第三章 运算符
一、各种运算符
1、赋值运算符
计算顺序:从右向左
2、算数运算符
3、关系运算符
4、逻辑运算符
5、位运算符
二、运算符优先级
第四章 语句
一、分支结构
1、if-else语句
//if语句的四种格式
1、if (条件){
true时执行的代码
}
2、if(条件)
{
true时执行的代码
}
else
{
不是true时执行的代码
}
3、if (条件)
{
if (条件){
true时执行的代码
}
else{
不是true时执行的代码
}
}
else(条件)
{
不是true时执行的代码
}
4、if (条件1)
{
true时执行的代码
}
else if (条件2)
{
true时执行的代码
}
else
{
两个条件都不是true时执行的代码
}
2、switch语句
switch(表达式){
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
···
case 常量表达式n:
语句n;
break;
default:语句n+1;
}
二、循环结构
1、while循环语句
注意是先判断后执行
while(表达式)
{
循环体;
}
2、do-while循环语句
注意是先执行后判断
do
{
循环体;
}
while(表达式)
3、for循环语句
for([表达式1};[表达式2];[表达式3])
{
循环体;
}
第五章 数组
一、一维数组
例:成绩求平均值
package mypro;
import java.util.Scanner;
public class 皮 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
double[] scores = new double [10];
double sum =0,avg;
for(int i = 0;i < scores.length;i++) {
System.out.print("请输入第" + (i+1)+"位同学的成绩:");
scores[i]=input.nextDouble();
}
for (int i=0;i < scores.length;i++) {
sum += scores[i];
}
System.out.printf("第"+scores.length+"位同学的平均成绩为:"+sum/scores.length);
}
}
二、数组排序
1、冒泡排序
package mypro;
public class 冒泡 {
public static void main(String[] args) {
int[] nums = {66,55,77,99,33};
for (int i = 0;i<nums.length-1;i++) {
for(int j = 0;j<nums.length-i-1; j++) {
if(nums[j]<nums[j+1]) {
int temp = nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
}
}
System.out.println("排序后:");
for (int i=0;i<nums.length;i++) {
System.out.print(nums[i]+"\t");
}
System.out.println();
}
}
2、选择排序
package mypro;
public class 选择 {
public static void main(String[] args) {
int[] nums = {44,33,55,99,22};
for (int i = 0;i<nums.length;i++) {
int min = nums[i];
int minIndex = i;
for(int j = i+1;j<nums.length;j++) {
if(min>nums[j]) {
min = nums[j];
minIndex=j;
}
}
int temp =nums[i];
nums[i] = nums[minIndex];
nums[minIndex] = temp;
}
System.out.println("排序后:");
for(int i=0;i<nums.length;i++) {
System.out.print(nums[i]+"\t");
}
System.out.println();
}
}
三、二维数组
二维数组可以看作是由一维数组的嵌套组成
第六章 对象
一、类与对象
1、类
2、面向对象
由来:
优点:维护简单、可扩充性、代码重用
万物皆对象
3、类与对象关系
二、构造函数
package mypro;
import java.util.Scanner;
public class 构造 {
public double radius;
public double perimeter;
public double area;
public void intputRaius() {
Scanner input = new Scanner(System.in);
System.out.println("请输入圆的半径:");
radius = input.nextDouble();
input.close();
}
public void showPerimeter() {
if(radius == 0) {
intputRaius();
}
perimeter = 2*Math.PI*radius;
System.out.println("周长为:"+perimeter);
}
public void showArea() {
if(radius<=0) {
intputRaius();
}
area =Math.PI*Math.pow(radius,2);
System.out.println("面积为:"+ area);
}
}
三、封装
package mypro;
public class 封装 {
private double radius;
private double perimeter;
private double area;
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
if(radius <= 0) {
radius = 1;
}else {
this.radius =radius;
}
}
public double getPerimeter() {
return perimeter =perimeter;
}
public void setPerimeter(double perimeter) {
this.perimeter = perimeter;
}
public double getArea() {
return area;
}
public void setArea(double area) {
this.area =area;
}
}
四、包装
package mypro;
public class 包装 {
public static void main(String[] args) {
Integer num1 = Integer.valueOf(200);
Integer num2 = 200;
System.out.println(num1 == num2);
//double num1 = 3.14;
//Double dNum1 = new Double("3.14");
//Double dNum1_1 = Double.valueOf(num1);
//Double dNum1_2 = 3.14;
//num1 = dNum1;
//num1 = dNum1_1.doubleValue();
//System.out.println(num1 + "\t" + dNum1);
}
}