第一章 Java入门
1. java的三大应用场景
Java SE:标准版,c/s
Java EE:企业版,web开发
Java ME:移动版
2.特点
面向对象的、开源的、支持垃圾回收、跨平台(支持多种操作系统)的高级编程语言。
简单的、面向对象的、分布式的、解释型、健壮的、安全的、结构中立的、可移植的、高效的、多线程语言。
3. jdk jvm jre
jvm: java虚拟机; 利用软件技术模拟的一台计算机; 借助虚拟机实现跨平台
jre:java运行环境;一系列的jar包;java程序要想运行,必须jre环境
jdk: java开发包;jvm+jre+一系列工具组件(程序) java.exe,java.exe...
运行原理:
4.数据类型
数据类型:不同的类型在内存中占据的存储空间是不一样的
大类别:8种基本类型、引用类型
基本数据类型
-
整形:根据存储范围的不同:byte(字节、8bit、-128~127,-27~2)、short(短整型,16bit)、int(整形,4字节,21亿)、long(长整形,8字节)
-
浮点型:float(单精度) double(双精度)
-
字符型:char 单引号引起来的字母、汉字或数字
-
布尔型:boolean 取值:true/false 用来当成条件判断的结果使用
引用数据类型
字符串:String、数组、自定义类
5.声明变量
第一种方式:
//数据类型 变量名; //变量名=值; int num; num=2;
第二种方式:
//数据类型 变量名=值; int num=2;
变量名的命名规则:
1.由字母、数字、下划线、$符号构成;
2.不能以数字开头。即字母、下划线和$符号开头;
3.不能使用java中的关键字;
public static void main(String [] args)//方法体
{
//声明变量 赋值
byte bt1=127;
int a=10;
char sex='男';
long lg=100;
float f1=3.14f;
double b1=3.14;
boolean bln=true;
//未经赋值的变量 不能直接使用
System.out.println(a);
System.out.println(sex);
}
6.各种类型的运算符
算术运算符:+ - * / %
++ --
后置即(i++或i--)优先级最低,先进行其他运算,再进行自增运算
关系运算符:>= <= < > != ==
逻辑运算符:&&与 ||或 !非
赋值运算符:= += *= /= %=
条件运算符:?:
int money=120;
String role=money>1000?"女主角":"路人甲";
/*if(money>1000)
{
role="女主角";
}
else
{
role="路人甲";
}*/
System.out.println(role);
优先级:一元运算符>算术>关系>逻辑>赋值>条件
public static void main(String[] args)
{
int num=100;
int num1=num++;
System.out.println(num1);
System.out.println(num);
if(++num>=101)
{
System.out.println("猜对了");
}
}
7.类型转换
表达式中不同类型的数据在运算时会进行转换:
1、隐式转换(自动):小类型----->大类型;byte---->short--->int--->long; float---->double
2、显式转换(强制):大类型----->小类型;long--->int--->short--->byte;double--->float
int a=10; double d=20.9898; a=(int)d;
字符串类型转换:
String str1="100"; int a=Integer.parseInt(str1); System.out.println(a);
8.流程控制语句
if
if else
if else if ... else...
switch(a)
{
case a:
}
判断三条边能否构成三角形
int a=10,b=20,c=30;
if(a+b>c&&a+c>b&&b+c>a)
{
System.out.println("新三角形");
}
else
{
System.out.println("不成啊");
}
根据money绝对如何做
int money=10000;
if(money<10000)
{
System.out.println("上交");
}
else if(money>=10000&&money<=20000)
{
System.out.println("留下2000");
}
else if(money>20000&&money<30000)
{
System.out.println("留下3000");
}
else
{
System.out.println("...s");
}
switch
int num=1;
switch(num)//switch里可填类型 byte,short,int,char,String
{
case 1:
System.out.println("金奖");
break;
case 2:
System.out.println("银奖");
break;
case 3:
System.out.println("铜奖");
break;
default://缺省,默认
System.out.println("好惨");
}
第二章 流程控制和循环语句
1、程序执行顺序
顺序执行:从上到下、从左到右;
选择判断:需要根据条件去判断执行某一分支
循环:重复,循环
2、控制台输入
步骤:
1、创建Scanner对象;导入包
//扫描器:类名 对象名(自己定义)=new 构造方法(System.in); Scanner sc=new Scanner(System.in);
2、提示输入信息
System.out.println("请输入用户的年龄");
3、调用Scanner中的方法,获取各种类型的数据
String name=sc.next();//获取字符串 int age=sc.nextInt();//获取整形 double height=sc.nextDouble();//获取double
public static void main(String[] args)
{
System.out.println("请输入用户的名字");
//创建 Scanner对象
//扫描器:类名 对象名(自己定义) =new 构造方法(System.in);
Scanner sc=new Scanner(System.in);
String name=sc.next();//获取字符串
System.out.prinln("请输入用户的年龄");
int age=scanner.nextInt();//获取整形
System.out.println("请输入用户的身高");
double height=scanner.nextDouble();//获取身高
System.out.println("名字是:"+name+"年龄是:"+age+"身高是:"+height);
}
3、分支语句
-
if
-
if....else
-
多重if...else
-
swith
4、循环语句
重复执行的过程称为循环。
计算机的计算能力、执行速度、记忆能力很强。可代替人进行遍历和累加。
循环分类:
1.while
int i=1;
while(i<=10)
{
System.out.prinln("hello"+i);
i++;
}
2.do--while
int i=1;
do{
System.out.println("我喜欢JAVA");
i++;
}while(i<=10);
3.for
for(int i=1;i<=10;i++)
{
System.out.println("这是for循环");
}
//执行顺序
//1、int i=1;
//2、i<=10;若成立进入循环主题
//3、循环体
//4、i++;
//重复2~4,直至2不满足条件,退出循环
while 与 do--while的区别:
1、while先判断再执行
2、do---while 先执行一次,然后再判断
应用场景:
循环次数明确的情况下一般使用for循环,不明确则使用 while 或 do---while
循环输入5次成绩,求出平均成绩、最大成绩、最小成绩
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int soc;
int sum=0;
int min=101;
int max=-1;
for (int i=1;i<=5;i++)
{
System.out.println("请输入第" + i + "个成绩");
soc=sc.nextInt();
sum+=soc;
if (soc<min)
{
min=soc;
}
if (soc>max)
{
max=soc;
}
}
System.out.println("平均成绩:"+sum/5+" 最大值:"+max+"最小值:"+min);
}
5、跳出循环
break:终止循环
利用break打印出出素数
public static void main(String[] args)
{
int j,count=0;
for (int i=1;i<=1000;i++)
{
for (j=2;j<i;j++)
{
if (i%j==0)
{
break;
}
}
if (i==j)
{
System.out.print(i+"\t");
count++;
if (count==5)
{
System.out.println();
count=0;
}
}
}
}
continue:终止本次,继续下次循环
利用continue同时求出奇数和 偶数和
public static void main(String[] args) {
int sum1=0,sum2=0;
for(int i=0;i<=100;i++)
{
if (i%2==0)
{
sum2+=i;
continue;
}
sum1+=i;
}
System.out.println("奇数和为:"+sum1+" 偶数和:"+sum2);
}
注意:break与continue后的语句均不会执行
6、循环嵌套
//外层循环执行一次,内层循环执行一轮
for(int i=1;i<=9;i++)
{
for(int j=1;j<=9;j++)//控制一行打印多少“*”
{
System.out.print("*\t");
}
System.out.prinln();
}
百钱百鸡问题
public static void main(String[] args) {
int x,y,z;
for (x=0;x<20;x++)
{
for (y=0;y<33;y++)
{
z=100-x-y;
if (z==300-15*x-9*y)
{
System.out.println("公鸡"+x+"只 母鸡"+y+"只 小鸡"+z+"只\n");
}
}
}
}
鸡兔同笼问题
public static void main(String[] args) {
int x,y;
for (x=1;x<35;x++)
{
y=35-x;
if (4*y+2*x==94)
{
System.out.println("鸡有"+x+"只 兔有"+y+"只");
}
}
}
水仙花数
ublic static void main(String[] args)
{
int a,b,c;
for (int i=100;i<=999;i++)
{
a=i%10;
b=i/100;
c=i/10%10;
if (a*a*a+b*b*b+c*c*c==i)
{
System.out.println(i);
}
}
}
第三章 类和对象
1、认识类和对象
对象:对现实生活一个个体的描述。
属性:对象的特征
方法:特定的行为
类:对一系列具备相同的属性和行为的对象的描述。
类和对象的关系
类:实例化--->得到对象
对象:抽象---->类
2、创建类
创建学生类:
1、类名:首字母大写(Pascal命名法)
//语法:访问修饰符 类关键字 类名
//public:公有的,可以被任意其他类使用
//public修饰的类名要和文件名保持一致
public class Student{
//1、属性:变量
char sex;
int age;
double height;
String hobby;
//2、方法
/*访问修饰符:public 公有的
*返回值类型:void 无返回值
*方法名:自己定义 驼峰命名法
*参数:
*{方法体}
*/
public void playGame()
{
System.out.println("在玩游戏");
}
}
2、属性:定义在类中的变量
| 类型 | 默认值 | 说明 |
|---|---|---|
| String | null | 空地址,空引用 |
| int | 0 | |
| double | 0.0 | |
| char | 空格:\0 | |
| boolean | false |
3、方法
//2、方法 语法:访问修饰符 返回值类型 方法名(参数){方法体}
/*访问修饰符:public 公有的
*返回值类型:void 无返回值
*方法名:自己定义 驼峰命名法
*参数:
*{方法体}
*/
//方法的使用:1、定义方法 2、调用方法
//1、无参数、无返回值的方法
//定义:
public void playGame()
{
System.out.println("在玩游戏");
}
//调用:
public static void main(String[] args) {
Student student = new Student();
student.name="大力";
//对象.方法名();
student.study();
}
//2、无参数、有返回值的方法
//定义:
public String buy(){
System.out.println("拿钱");
System.out.println("去宠物店");
System.out.println("买宠物");
String pig="小猪";
//return :返回 具体的值(要和规定的返回值类型保持一致) ;结束方法的运行
return pig;
}
//调用:
public static void main(String[] args) {
Student student = new Student();
student.name="大力";
//对象.方法名();
//student.study();
//声明变量 接受返回值
String result=student.buy();
System.out.println("吃红烧肉:"+result);
System.out.println(student.buy());
}
//3、有参数、无返回值的方法
//定义:
//定义中的参数:形参
public void study2(String course,int hour){
if(hour<12){
System.out.println(name+"在学习"+course);
}
else {
System.out.println("游戏攻略:"+course);
}
}
//调用:
public static void main(String[] args) {
Student student = new Student();
student.name="大力";
String course="前端";
int hour=16;
//调用带参数的方法
//调用时必须按照规定提供相同类型,相同个数,实际的数据
student.study2(course,hour);
}
//4、有参数、有返回值的方法
//定义: /**
* 买苹果
* @param money 钱
* @return 苹果的个数
*/
public int buyApple(int money){
if(money<10){
return 2;
}else if(money>10&&money<20){
return 5;
}
return 20;
}
//调用:
public static void main(String[] args) {
Student student = new Student();
student.name="大力";
int num= student.buyApple(50);
System.out.println(student.name+"买入苹果:"+num);
}
方法的调用
1、同类中的方法如何调用
直接写方法名
方法名(); 有参数传参数,无参数不用传
2、不同类中的方法相互调用
先创建对象,然后对象名.方法名(); 有参数传参数,无参数不用传
3、创建对象
public static void main(String[] args){
//创建对象
//类:自定义的数据类型,等同于int,double等
//语法:类名 对象名=new 类名();
//引用类型
//栈:先进后出;空间小,读取速度快;存储基本数据类型和引用类型
//堆:空间大,读取速度相对慢;存储对象
Student stu=new Student();
//操作属性 :通过对象去访问属性
student1.name="小文";
student1.sex='男';
student1.age=18;
student1.hobby="吹拉弹唱";
System.out.println(student1.name+student1.sex+student1.age+student1.hobby);
//调用方法
student1.playGame();
System.out.println(student1);
Student student2=new Student();
//操作属性 :通过对象去访问属性
student2.name="小宝";
student2.sex='男';
student2.age=18;
student2.hobby="吃喝玩乐";
System.out.println(student2.name+student2.sex+student2.age+student2.hobby);
//调用方法
student2.playGame();
}
Java编程基础详解
16万+

被折叠的 条评论
为什么被折叠?



