600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java基础 day07-String中的常用方法习题 访问修饰符 构造方法 面向对象练习题(10

java基础 day07-String中的常用方法习题 访问修饰符 构造方法 面向对象练习题(10

时间:2023-01-11 12:57:16

相关推荐

java基础 day07-String中的常用方法习题 访问修饰符 构造方法 面向对象练习题(10

String中的常用方法习题

1、统计字符串oaoaoaooaoiinsihsjbaijhoa中oa的数量

参考别人的:

public static void main(String[] args) {String str = "oaooa";String[] str1 = (str+"c").split("oa");// 如果最后一组元素为oa,那么再最后添加一个非oa元素,增加分割出来的数量int count = str1.length - 1;// oa数量比分割出来的次数少1System.out.println(count);}

public static void main(String[] args) {// TODO Auto-generated method stubString strings = "oaaoa";//讲字符串中的oa用A来替换String str = strings.replace("oa", "A");//两串字符的差即为oa的个数System.out.println(strings.length()-str.length());}

** 自己写的:**

public static void main(String[] args) {String string = "oaaoa";String[] string1 = string.split("");int count = 0;for (int i = 0; i < string1.length; i++) {if ((string1[i].equals("o")) && (string1[i + 1].equals("a"))) {count++;}}System.out.println(count);}

tips:

1、注意==和equals的区别,判断字符串要用equals。

2、可以直接调用charAt方法,不用分割字符串

public static void main(String[] args) {String string = "oaooa";int count = 0;for (int i = 0; i < string.length(); i++) {if (string.charAt(i) == 'o' &&string.charAt(i+1)== 'a') {count++;}}System.out.println(count);}

摁住Ctrl键鼠标点击某个类名字,会跳转到该类如String

访问修饰符:是添加到类、结构或成员声明的关键字

以下内容来自Neat帆

Public:公有的,是类型和类型成员的访问修饰符。对其访问没有限制

Internal:内部的,是类型和类型成员的访问修饰符。同一个程序集中的所有类都可以访问

Private:私有的,是一个成员访问修饰符。只有在声明它们的类和结构中才可以访问。

Protected:受保护的,是一个成员访问修饰符。只能在它的类和它的派生类中访问。

构造方法

以下内容来自王俊凯夫人和li_jeremy构造方法作用:对对象进行初始化原则:构造函数名必须与其类名称相同,构造函数必须没有显式返回类型类型:默认构造函数(无参数构造函数),参数化构造函数构造函数与普通函数的区别
一般函数是用于定义对象应该具备的功能。而构造函数定义的是,对象在调用功能之前,在建立时,应该具备的一些内容。也就是对象的初始化内容。构造函数是在对象建立时由jvm调用, 给对象初始化。一般函数是对象建立后,当对象调用该功能时才会执行。普通函数可以使用对象多次调用,构造函数就在创建对象时调用。构造函数的函数名要与类名一样,而普通的函数只要符合标识符的命名规则即可。构造函数没有返回值类型。
构造函数要注意的细节
当类中没有定义构造函数时,系统会指定给该类加上一个空参数的构造函数。这个是类中默认的构造函数。当类中如果自定义了构造函数,这时默认的构造函数就没有了。备注:可以通过javap命令验证。在一个类中可以定义多个构造函数,以进行不同的初始化。多个构造函数存在于类中,是以重载的形式体现的。因为构造函数的名称都相同。
构造代码块:为解决代码重复的问题
构造代码块作用:给所有的对象进行统一的初始化。给对象进行初始化。对象一建立就运行并且优先于构造函数。与构造函数区别构造代码块和构造函数的区别,构造代码块是给所有对象进行统一初始化, 构造函数给对应的对象初始化。构造代码块的作用:它的作用就是将所有构造方法中公共的信息进行抽取。

class Boy {String name;int age;String gender;// 构造代码块,给所有对象进行初始化。{System.out.println("哭。。。");}Boy() {System.out.println("无参构造");}Boy(String n, int a, String g) {name = n;age = a;gender = g;System.out.println("有参构造");}void run() {System.out.println("跑...");}}class Demo9 {public static void main(String[] args) {System.out.println();Boy b = new Boy();Boy b2 = new Boy("jack", 1, "男");}}

java面向对象题目

使用面向对象的思想,创建有10个学生对象,每个学生有不同的名字和性别、考试成绩。给这10个学生随机的考试成绩。

题目1:统计这10个学生的平均分,男生的平均分,女生的平均分。

题目2:按照考试成绩,对这个10个学生进行排序

Student类

public class Student {private String nameString;private String sexString;private int grade;public Student() {}public Student(String nameString, String sexString, int grade) {this.nameString = nameString;this.sexString = sexString;this.grade = grade;}public String getNameString() {return nameString;}public void setNameString(String nameString) {this.nameString = nameString;}public String getSexString() {return sexString;}public void setSexString(String sexString) {this.sexString = sexString;}public int getGrade() {return grade;}public void setGrade(int grade) {this.grade = grade;}public String toString(){return "姓名为:"+this.nameString+" 性别为:"+this.sexString+" 成绩为:"+this.grade;}}

StudentTest类

import java.util.Arrays;import java.util.Random;public class StudentTest {public static void main(String[] args) {/*创建有10个学生对象, 每个学生有不同的名字和性别、考试成绩。 * 给这10个学生随机的考试成绩。*/int boygrade = 0;int girlgrade = 0;int sumgrade = 0;float avg = 0;int[] randgrade = new int [10];for (int i = 0;i<10;i++) {//性别随机int ransex = new Random().nextInt(2) + 1;String sexString;if(ransex == 1) {sexString = "男";}else {sexString = "女";}//成绩随机int rangrade = new Random().nextInt(101);//姓名随机String familyName = "赵钱孙李周吴郑王冯";String Name = "昌成康星光天枝思";String str1 = "";String str2 = "";int len1 = familyName.length();int len2 = Name.length();int index1 = new Random().nextInt(len1);int index2 = new Random().nextInt(len2);str1 = String.valueOf(familyName.charAt(index1));str2 = String.valueOf(Name.charAt(index2));Student student = new Student(str1+str2,sexString,rangrade);randgrade[i] += rangrade;if(sexString == "男") {boygrade+=rangrade;sumgrade+=rangrade;}else {girlgrade+= rangrade;sumgrade+=rangrade;}System.out.println(student);System.out.println();}//题目1:统计这10个学生的平均分,男生的平均分,女生的平均分。avg = sumgrade/20;System.out.println("女生的平均成绩为:"+ girlgrade);System.out.println("男生的平均成绩为:"+boygrade);System.out.println("学生平均成绩为:"+sumgrade);//题目2:按照考试成绩,对这个10个学生进行排序//冒泡排序for(int i =0;i< randgrade.length - 1;i++) {for(int j = 0;j<randgrade.length-1-i;j++ ) {if(randgrade[j] < randgrade[j + 1]) {//交换成绩int temp = randgrade[j];randgrade[j] = randgrade[j+1];randgrade[j+1] = temp;}}}System.out.print("按照成绩从高到低排序为:"+Arrays.toString(randgrade)+" ");}}

java基础 day07-String中的常用方法习题 访问修饰符 构造方法 面向对象练习题(10个学生对象成绩排序)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。