7.21
(1)方法练习
代码示例:
//判断数组中某一个数是否存在
import java.util.Scanner;
public class Fangfa {
public static void main(String[] args) {
int arr[]=new int [] {11,45,14,19,19};
Scanner sc=new Scanner(System.in);
int temp=sc.nextInt();
sc.close();
boolean flag=ret(arr, temp);
System.out.println(flag);
}
public static boolean ret(int arr[],int num) {
for(int i=0;i<arr.length;i++) {
if(arr[i]num)
return true;
}
return false;
}
}
(1)方法练习(拷贝数组)
代码示例:
//拷贝数组
import java.util.Scanner;
public class Fangfa {
public static void main(String[] args) {
int arr[]=new int [] {11,45,14,19,19};
Scanner sc=new Scanner(System.in);
int from=sc.nextInt();
int to=sc.nextInt();
sc.close();
int copyArr[]=copy(arr,from,to);
for(int i=0;i<copyArr.length;i++) {
System.out.println(copyArr[i]);
}
}
public static int[] copy(int arr[],int from,int to) {
int newArr[]=new int [to-from];
int index=0;
for(int i=from;i<to;i++) {
newArr[index]=arr[i];
index++;
}
return newArr;
}
}
7.22
(1)java内存分配
栈:方法运行时使用的内存,方法进栈运行,运行完毕就出栈
堆:new出来的,都在堆内存中开辟了一个小空间
方法区:存储可以运行的class文件
本地方法栈:JVM在使用操作系统功能时使用,和我们开发无关
寄存器:给CPU使用,和我们无关
(2)基本数据类型和引用数据类型
基本数据类型:数据值是储存在自己的空间中
特点:赋值给其他变量,也是赋的真实值
引用数据类型:数据值是存储在其他空间中,自己空间中存储的是地址值
特点:赋值给其他变量,赋值为地址值
7.23
(1)java练习(飞机票)
代码示例:
//5-10月头等舱9折,经济舱8.5折;11-来年4月头等舱7折,经济舱6.5折
import java.util.Scanner;
public class Lianxi {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入当前票价:");
int ticket=sc.nextInt();
System.out.println("请输入月份:");
int month=sc.nextInt();
System.out.println("请输入舱位(0为头等舱,1为经济舱):");
int type=sc.nextInt();
sc.close();
if(month>=5&&month<=10) {
if(type0) {
ticket=(int)(ticket0.9);
}else if(type==1) {
ticket=(int)(ticket0.85);
}
else {
System.out.println("舱位错误喵");
}
}else if((month>=11 && month<=12)||(month>=1 && month<=4)) {
if(type0) {
ticket=(int)(ticket*0.7);
System.out.println(ticket);
}else if(type1) {
ticket=(int)(ticket*0.65);
System.out.println(ticket);
}
else {
System.out.println("舱位错误喵");
}
}
else {
System.out.println("月份错误喵");
}
}
}
7.24
(1)二维数组
静态初始化:
数据类型[][]数组名=new数据类型[][]{{元素1,元素2},{元素1,元素2}};
动态初始化:
数据类型[][] 数组名=new 数据类型[m][n];
获取元素:
例System.out.println(arr[0][0]);
(2)类和对象
类的定义:
public class 类名{
1、成员变量(代表属性,一般是名词)
2、成员方法(代表行为,一般是动词)
3、构造器
4、代码块
5、内部类
}
类的对象:
类名 对象名=new 类名();
javabean类(不需要写main):
public class 类名{
1、成员变量(代表属性)
2、成员方法(代表行为)
}
测试类:
即我们所写的带main的类
7.25
(1)封装
对象代表什么,就得封装对应的数据,并提供数据对应的行为
private关键字:权限修饰符,可以修饰成员,被修饰的成员只能在本类中才能访问
private应用示例:
public class GirlFriend{
private int age;
public void setAge(int a){ //setAge赋值
age=a;
}
public int getAge(){ //getAge获得
return age;
}
}
(2)this关键字
代码示例:
public class GirlFriend{
private int age; //成员变量age默认值为0
public void method(){
int age=10; //局部变量age
System.out.println(age); //就近原则,打印结果为10
}
}
public class GirlFriend{
private int age; //成员变量age默认值为0
public void method(){
int age=10; //局部变量age
System.out.println(this.age); //打印为成员变量age,即0
}
}
7.26
(1)构造方法(构造器、构造函数)
格式:
public class Student{
修饰符 类名(参数){
方法体;
}
}
例:
public Student(){
...
}
特点:
1、方法名与类名相同,大小写也要一致
2、没有返回值类型,连void都没有
3、没有具体的返回值(不能由return带回结果数据)
(注:如果没有定义构造方法,系统将给出一个默认的无参数构造方法;如果定义了构造方法,系统将不再提供默认的构造方法)
(2)标准的JavaBean类
1、类名需要见名知意
2、成员变量使用private修饰
3、提供至少两个构造方法
无参构造方法
带全部参数的构造方法
4、成员方法
提供每一个成员变量对应的set()/get()
如果还有其他行为,也需要写上
7.27
(1)成员和局部
成员变量:类中,方法外的变量,在整个类生效,堆内存
局部变量:方法内、方法申明上,在方法内生效,栈内存
(2)面向对象练习(格斗游戏)
代码示例:
public class Game {
static public void main(String[] args) {
Role r1=new Role("徐盛",100);
Role r2=new Role("曹冲",100);
while(true) {
r1.attack(r2);
if(r2.getBlood()0) {
System.out.println(r2.getName()+"寄了");
break;
}
r2.attack(r1);
if(r1.getBlood()0) {
System.out.println(r1.getName()+"寄了");
break;
}
}
}
}
import java.util.Random;
public class Role {
private String name;
private int blood;
public Role() {
}
public Role(String name,int blood) {
this.name=name;
this.blood=blood;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getBlood() {
return blood;
}
public void setBlood(int blood) {
this.blood = blood;
}
public void attack(Role role) {
Random r=new Random();
int hurt=r.nextInt(20)+1;
int remainHP=role.getBlood()-hurt;
remainHP=remainHP<0?0:remainHP;
role.setBlood(remainHP);
System.out.println(this.getName()+"打了"+role.getName()+"造成"+hurt+"点伤害"+role.getName()+"还剩"+remainHP+"血量");
}
}
标签:java,int,age,System,学习,进度,println,public,out From: https://www.cnblogs.com/WMKQF/p/18324027