导航:首页 > 编程语言 > java面向对象编程第5期

java面向对象编程第5期

发布时间:2022-04-11 22:13:23

java面向对象编程

package test;

public class Person {

private String realName;

private int age;

private int sex;

public Person(String realName, int age, int sex) {
this.realName = realName;
this.age = age;
this.sex = sex;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getRealName() {
return realName;
}

public void setRealName(String realName) {
this.realName = realName;
}

public int getSex() {
return sex;
}

public void setSex(int sex) {
this.sex = sex;
}

public String getSexStr() {
if (sex == 1)
return "男";
else
return "女";
}

}
package test;

public class Student extends Person {

private String studentNo;

public Student(String studentNo, String realName, int age, int sex) {
super(realName, age, sex);
this.studentNo = studentNo;
}

public String getStudentNo() {
return studentNo;
}

public void setStudentNo(String studentNo) {
this.studentNo = studentNo;
}

public static void main(String[] args) {
Student s1 = new Student("1", "张三", 21, 1);
Student s2 = new Student("2", "李四", 23, 0);

System.out.println("s1 : 学号=" + s1.getStudentNo() + " 姓名=" + s1.getRealName() + " 年龄=" + s1.getAge() + " 性别=" + s1.getSexStr());
System.out.println("s2 : 学号=" + s2.getStudentNo() + " 姓名=" + s2.getRealName() + " 年龄=" + s2.getAge() + " 性别=" + s2.getSexStr());
}

}

② 什么是java面向对象编程

面向对象编程(oop)旨在将现实世界中的概念模拟到计算机中,它将现实世界中的所以事物视作对象。对象是存在的具体实体,具有明确定义的状态和行为。

③ Java面向对象编程的内容简介

《Java 面向对象编程》 内容由浅入深,紧密结合实际,利用大量典型实例,详细讲解Java面向对象的编程思想、编程语法和设计模式,介绍常见Java类库的用法,总结Java编程的各种经验,深入阐述Java虚拟机执行程序的原理。书中实例均基于最新的JDK 1.5版本。全书内容包括面向对象的编程思想、Java语言的基础知识、异常处理、类与对象的生命周期、多线程、Java集合、输入/输出和GUI编程等。其最大特色是以六条主线贯穿全书:面向对象编程思想、Java语言的语法、Java虚拟机执行Java程序的原理、在实际项目中的运用、设计模式和性能优化技巧。

④ 孙卫琴《java面向对象编程》到底写得如何,值得看吗

孙卫琴的《java面向对象编程》是最经典的原创java编程书籍,国内大部分程序员都看过这本书,我看了第一版的,还收藏了第二版的。我们公司里大部分人都看过这本书,内容通俗易懂,而且很细致,有深度,是提升编程功力的一本书

⑤ java面向对象编程求帮忙

一共三个类:ScoreArray.java、StudentScoreArray.java和Test1.java,具体为:


public class ScoreArray {
private int[] scores;
private int scoreCount;

public int[] getScores() {
return scores;
}

public int getScoreCount() {
return scoreCount;
}
//构造函数
public ScoreArray(int[] scores) {
this.scores = scores;
for (int score : scores) {
if (score >= 0 && score <= 100) {
this.scoreCount++;
}
}
}
//求最大值
public int getMax() {
int[] scores = this.scores;
int temp;
for (int i = 0; i < scores.length; i++) {
for (int j = 0; j < scores.length - 1 - i; j++) {
if (scores[j] > scores[j + 1]) {
temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
return scores[scores.length - 1];
}
//求最小值
public int getMin() {
int[] scores = this.scores;
int temp;
for (int i = 0; i < scores.length; i++) {
for (int j = 0; j < scores.length - 1 - i; j++) {
if (scores[j] > scores[j + 1]) {
temp = scores[j];
scores[j] = scores[j + 1];
scores[j + 1] = temp;
}
}
}
return scores[0];
}
//求均值
public double getAvg() {
int sum = 0;
for (int score : this.scores) {
sum += score;
}
return new BigDecimal(sum).divide(
new BigDecimal(this.scores.length),
2, BigDecimal.ROUND_HALF_UP).doubleValue();
}
//排序
public void sort() {
int temp;
for (int i = 0; i < this.scores.length; i++) {
for (int j = 0; j < this.scores.length - 1 - i; j++) {
if (this.scores[j] > this.scores[j + 1]) {
temp = this.scores[j];
this.scores[j] = this.scores[j + 1];
this.scores[j + 1] = temp;
}
}
}
}
//静态说明类
public static void explain() {
System.out.println("本类[ScoreArray]实现了数组的:求最值[getMax()]、求均值[getAvg()]和排序[sort()]方法");
}
}


public class StudentScoreArray extends ScoreArray {
public StudentScoreArray(int[] scores) {
super(scores);
}
//统计
public void statistic() {
super.sort();
Map<Integer, Integer> map = new LinkedHashMap<>();
for (int i : super.getScores()) {
if (map.containsKey(i)) {
map.put(i, map.get(i) + 1);
} else {
map.put(i, 1);
}
}
map.forEach((k, v) -> System.out.println("分数为[" + k + "]的人数为:[" + v + "]"));
}
//静态说明类
public static void explain() {
System.out.println("本类[StudentScoreArray]实现了数组的:求最值[getMax()]、求均值[getAvg()]、排序[sort()]和分布统计[statistic()]方法");
}
}


public class Test1 {
public static void main(String[] args) {
int[] scores = {59, 60, 82, 58, 71, 99, 0, 59, 65};

ScoreArray scoreArray = new ScoreArray(scores);
ScoreArray.explain();
System.out.print("数组内容:[");
for (int i : scoreArray.getScores()) {
System.out.print(i + " ");
}
System.out.println("]");
System.out.println("有效值个数:" + scoreArray.getScoreCount());
System.out.println("最大值:" + scoreArray.getMax());
System.out.println("最小值:" + scoreArray.getMin());
System.out.println("平均值:" + scoreArray.getAvg());
scoreArray.sort();
System.out.print("排序后数组内容:[");
for (int i : scoreArray.getScores()) {
System.out.print(i + " ");
}
System.out.println("]");

System.out.println("");
System.out.println("========华丽的分割线========");
System.out.println("");

StudentScoreArray studentScoreArray = new StudentScoreArray(scores);
StudentScoreArray.explain();
System.out.print("数组内容:[");
for (int i : studentScoreArray.getScores()) {
System.out.print(i + ",");
}
System.out.println("]");
System.out.println("有效值个数:" + studentScoreArray.getScoreCount());
System.out.println("最大值:" + studentScoreArray.getMax());
System.out.println("最小值:" + studentScoreArray.getMin());
System.out.println("平均值:" + studentScoreArray.getAvg());
studentScoreArray.sort();
System.out.print("排序后数组内容:[");
for (int i : studentScoreArray.getScores()) {
System.out.print(i + " ");
}
System.out.println("]");
System.out.println("分数分布统计:");
studentScoreArray.statistic();
}
}


其中对StudentScoreArray类我要特别说明一下:

统计分布情况时,使用了Map,map是一种key-value的数据结构,其有个特点被我所利用:一个map中只能同时存在一个key,所以我以分数为key,以数量为value,遍历分数数组时,如果是第一次遇到这个key(分数),则将其value(数量)置为1;如果已经不是第一次遇见了,则将其value(数量)置为value + 1(数量 + 1)。另外需要遍历这个map实现统计结果的打印,我这里使用了java8以后才支持的Lambda表达式,所以你要运行这个程序必须要使用jdk1.8以上的版本。如果你觉得这样不妥,可以网上再搜一下map的遍历方式。


运行结果:

测试用例都使用的数组:int[] scores = {59, 60, 82, 58, 71, 99, 0, 59, 65};

⑥ 解释下Java 面向对象编程

网络很快的……
java的面向对象:java最基本的特征之一。对象是java最基本的封装单位,要求编程时候将对象概括为类,类封装对象的一些操作和数据。然后运用时候再将类实例化为对象
对象被称作类的一个实例(Instance),而类是对象的模 版(Template) 类是多个实例的综合抽象,而实例又是类的个体实物。 由于对象是类的实例,因此在定义对象之前应先定义类。定义了类之后,才 可以在类的基础上创建对象。

⑦ java 里的面向对象的编程,1.是怎么找到类与类(对象与对象)之间的关系 2.为什么要初始化数据

1、这个设计到java底层的动态绑定机制。你只要知道用类声明了对象,即便在程序中你将其强制转化为其他类。但java仍能判断出它初始的类型。比如
String s=new String("test");
s=(Object)s;
System.out.println(s.getClass());//这里输出的依然会是String类型的,虽然上一部经过强制转换。

2、java中很多基本数据类型都有默认值,比如INT类型的是0,但是java最多的数据类型还是对象。
如果不初始化数据,那么对象的值默认为null,调用该对象的时候就会抛出空指针异常。我举个简单的例子。
String s="";和String s;的区别,前一个表示,我按照s中保存的地址去寻找这个String类型的对象,找到了,而且是一个空字符串。后一个表示,我想通过s中保存的地址去找对象,但是s中没有地址,是空的,因此我想去调用s的方法的时候会出错,因为他并没有指向任何一个对象。

⑧ Java面向对象编程有哪些优点

面向对象的优点是:不造重复的轮子,也就是说不干重复的活。
java中把具有相同共性的一类事物抽象为一个类,而对象是这个类的其中一个实体。
例如:人是一个类(有共同的属性,有头发、眼睛、鼻子.....),张三、李四、王五是三个实体对象,而每个对象的属性又是不同的,例如张三是黑头发,李四是黄头发、王五是红头发。
这样复用性比较好。

阅读全文

与java面向对象编程第5期相关的资料

热点内容
优信二手车解压后过户 浏览:61
Windows常用c编译器 浏览:778
关于改善国家网络安全的行政命令 浏览:833
安卓如何下载网易荒野pc服 浏览:654
javainetaddress 浏览:104
苹果4s固件下载完了怎么解压 浏览:1002
命令zpa 浏览:285
python编译器小程序 浏览:944
在app上看视频怎么光线调暗 浏览:540
可以中文解压的解压软件 浏览:592
安卓卸载组件应用怎么安装 浏览:912
使用面向对象编程的方式 浏览:339
程序员项目经理的年终总结范文 浏览:929
内衣的加密设计用来干嘛的 浏览:432
淮安数据加密 浏览:292
魔高一丈指标源码 浏览:982
松下php研究所 浏览:168
c回调java 浏览:399
梦幻端游长安地图互通源码 浏览:745
电脑本地文件如何上传服务器 浏览:313