类与对象
学习-Java类和对象之类的声明之学生类的定义
/**
* 任务:定义一个 Student 学生公开类,该类具有学号 id(int),年龄 age(int),grade(int) 等属性;
* 它们所具有的行为有学习 study(),考试 examination(),讲话 tell(),它们都无返回值和传入的参数。
* 类名为:Student
*/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:创建一个名为 Student 的公开类
public class Student {
public int id;
public int age;
public int grade;
public Student() {
}
public Student(int id, int age, int grade) {
this.id = id;
this.age = age;
this.grade = grade;
}
public void study(){
System.out.println("学号为"+this.id+"的学生正在学习。");
}
public void examination(){
System.out.println(this.grade+"年级正在考试。");
}
public void tell(){
System.out.println("正在讲话的是一个"+this.age+"岁的学生。");
}
public static void main(String[] args) {
Student student=new Student();
student.study();
student.examination();
student.tell();
}
}
/********** End **********/
练习-Java类和对象之对象引用之模拟手机功能
/**
* 任务:实现手机的基本功能。
* 类名为:Phone
*/
public class Phone {
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 定义五个变量,分别表示品牌、型号、价格、操作系统和内存
public String brand;
public String num;
public double price;
public String OS;
public int memory;
// 无参构造
public Phone() {
}
// 有参构造
public Phone(String brand, String num, double price, String OS, int memory) {
this.brand = brand;
this.num = num;
this.price = price;
this.OS = OS;
this.memory = memory;
}
/**
* 定义一个方法,该方法实现查询手机信息的方法,无返回值
* 输出格式:品牌:xx
* 型号:xx
* 操作系统:xx
* 价格:xx
* 内存:xx
* 中间用换行符隔开
*/
public void query(){
System.out.println("品牌:"+this.brand+"\n"+"型号:"+this.num+"\n"
+"操作系统:"+this.OS+"\n"+"价格:"+this.price+"\n"+"内存:"+this.memory);
}
/**
* 定义一个方法,该方法实现打电话的功能,无返回值,
* 携带一个int型参数,其中1,2,3分别表示爸爸、妈妈、姐姐的号,
* 输出格式 如果参数为1,换行输出:正在给爸爸打电话
* 如果出现其它情况,换行输出:你所拨打的电话为空号
*/
public void call(int x){
if(x==1){
System.out.println("正在给爸爸打电话");
} else if (x==2) {
System.out.println("正在给妈妈打电话");
}else if(x==3){
System.out.println("正在给姐姐打电话");
}else{
System.out.println("你搜拨打的电话为空号");
}
}
/**
* 定义一个方法,该方法实现听音乐的功能,无返回值
* 携带一个参数,其表示为歌曲名
* 不换行输出格式:正在播放xx
*/
public void listen(String name){
System.out.print("正在播放"+name);
}
// 定义主方法
public static void main(String[] args) {
// 通过无参构造创建手机对象
Phone phone=new Phone();
// 设置手机品牌为小米,型号为小米9,操作系统为,价格为2599,运行内存为8
phone.brand="小米";
phone.num="小米9";
phone.OS="Android 9";
phone.price=2599;
phone.memory=8;
// 查询手机信息
phone.query();
// 给妈妈拨打电话
phone.call(2);
// 播放浮夸这首歌
phone.listen("浮夸");
}
/********** End **********/
}
练习-Java类和对象之this关键字
/**
* 任务:定义一个完整的学生类,该类定义了学生的基本信息。
* 类名为:Student
*/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 创建一个名为 Student 的公开类
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// 该方法实现输出学生信息的功能。 输出格式:学生姓名:xx,年龄:xx
public void info() {
System.out.print("学生姓名:"+this.name+",年龄:"+this.age);
}
}
/********** End **********/
学习-Java类和对象之访问限制
/**
* 任务:实现图书类,该类包含了图书的基本属性和信息。
* 类名为:Book
*/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
public class Book {
// 定义四个私有变量
// 图书名称(bookName String)
private String bookName;
// 图书单价(price double)
private double price;
// 图书库存(total int)
private int total;
// 图书id(bookId int)
private int bookId;
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getBookId() {
return bookId;
}
public void setBookId(int bookId) {
this.bookId = bookId;
}
}
/********** End **********/
数组与方法
倒转数组
package step1;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num = input.nextInt();
int [] a = new int[num];
for (int i=0;i<a.length;i++){
a[i] = input.nextInt();
}
reverse(a);
for (int i=0;i<a.length;i++){
System.out.print(String.format("%d ",a[i]));
}
}
//请在指定位置填写代码。
/********* Begin *********/
public static int[] reverse(int[] a){
for (int i = 0; i <(a.length)/2; i++) {
int tmp=a[i];
a[i]=a[a.length-1-i];
a[a.length-1-i]=tmp;
}
return a;
}
/********* End *********/
}
消除重复
package step2;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num = input.nextInt();
int [] a = new int[num];
for (int i=0;i<a.length;i++){
a[i] = input.nextInt();
}
int [] r = getSet(a);
for (int i=0;i<r.length;i++){
System.out.print(String.format("%d ",r[i]));
}
}
//请在指定位置填写代码。
/********* Begin *********/
public static int[] getSet(int[] a){
int[] array=new int[a.length]; //用来接收去重后的a[]数组
array[0]=a[0]; //存第一个元素
int flag=0,n=1; //flag标记是否该数字已经出现
for (int i=0;i<a.length;i++){
for(int j=0;j<n;j++){ //遍历已经保存的数字
if(array[j]==a[i]){
flag=1; //该数字已出现
break;
}
}
if(flag==0){
array[n++]=a[i]; //该数字未出现,保存
}
flag=0;
}
int[] ans=new int[n]; //因为array[]的个数不符合要求
for(int i=0;i<n;i++)
ans[i]=array[i];
return ans;
}
/********* End *********/
}
大整数加法
package step3;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String n1 = input.nextLine();
String n2 = input.nextLine();
String result = add(n1,n2);
System.out.println(result);
}
//请在指定位置填写代码。
/********* Begin *********/
public static String add(String a,String b){
int n=a.length()>b.length()?a.length():b.length(); //长度
int aa[]=new int[n+1],bb[]=new int[n+1];
for(int i=0;i<a.length();i++){
aa[i]=a.charAt(a.length()-1-i)-'0';
}
for(int i=0;i<b.length();i++){
bb[i]=b.charAt(b.length()-1-i)-'0';
}
int temp,ans[]=new int[n+1];
for(int i=0;i<n;i++){
temp=aa[i]+bb[i]+ans[i];
if(temp>9){
ans[i+1]=1;
ans[i]=temp-10;
}
else{
ans[i]=temp;
}
}
StringBuilder res = new StringBuilder();
boolean findFirst = false;
for (int i=ans.length-1; i>=0; i--) {
if(!findFirst){
if(ans[i] == 0){
continue;
}
findFirst = true;
}
res.append(ans[i]);
}
return res.toString();
}
/********* End *********/
}