java2

一、学习要点

认真看书并查阅相关资料,掌握以下内容:

理解对象的创建与引用的关系
掌握构造方法的重载
掌握String类
掌握类的设计方法
掌握this关键字
掌握static关键字
理解引用传递并掌握基本应用
掌握单例模式
理解内部类
(一)学习总结

1.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么?

public class Test {public static void main(String args[]) { Foo obj = new Foo();       }     
}
class Foo{int value;public Foo(int intValue){value = intValue;}
}
- 不能通过编译
- 类中只定义了有参的构造函数,如果一个类中已经明确定义了构造方法,则系统不再提供默认的构造方法。
- 为了避免出现错误,在一个类中如果定义了一个有参的构造方法时,最好再定义一个无参的构造方法。

构造方法是一种特殊的方法,它是一个与类同名且返回值类型为同名类类型的方法。
对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。.
当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。
方法重载:
1.必须在同一个类
2.方法名相同
3.方法参数个数或参数类型(或参数顺序)不同
注:
1.参数顺序指的是参数类型顺序,与参数名字无关,比如show(int a,,Stringa,int c)和show(int c,String b,int a)是一样的方法,
非方法重载,因为他们的参数类型顺序一样是int,String,int
2.方法重载与访问权限修饰符和方法返回值无关

2.运行下列程序,结果是什么?分析原因,应如何修改。

public class Test {public static void main(String[] args) {MyClass[] arr=new MyClass[3];arr[1].value=100;}
}
class MyClass{public int value=1;
}

1032276-20180331124504088-949483378.png

无法运行

3.运行下列程序,结果是什么?说明原因。

public class Test {public static void main(String[] args) {Foo obj1 = new Foo();Foo obj2 = new Foo();System.out.println(obj1 == obj2);}
}
class Foo{int value = 100;
}

结果:false
new开辟内存空间,obj1与obj2首地址不同,所以无法正确。

4.什么是面向对象的封装性,Java中是如何实现封装性的?试举例说明。
所谓封装,就是通过定义类并且给类的属性和方法加上访问控制来抽象事物的本质特性。
封装就是定义一个类,然后给该类的属性(成员变量)和方法加上访问控制修饰词(public,private, protected,默认包访问权限),
使得该类的属性和方法对于类外部来说,想可见的可见,不想可见的隐藏。

eg:private 。。。声明私有变量
public则是共有属性。
setter,getter方法用来设置及调用
5.阅读下面程序,分析是否能编译通过?如果不能,说明原因。
(1)

class A{private int secret = 5;
}
public class Test{public static void main(String args[]){A a = new A();System.out.println(a.secret++);}
}

字段 A.secret 不可视
(2)

public class Test{int x = 50;static int y = 200;public static void method(){System.out.println(x+y);}public static void main(String args[]){Test.method();}
}

Exception in thread "main" java.lang.Error: 无法解析的编译问题:
不能对非静态字段 x 进行静态引用

at Text.method(Text.java:5)
at Text.main(Text.java:8)

6.使用类的静态变量和构造方法,可以跟踪某个类创建的对象个数。声明一个图书类,数据成员为编号,书名,书价,并拥有静态数据成员册数记录图书的总数。图书编号从1000开始,每产生一个对象,则编号自动递增(利用静态变量和构造方法实现)。下面给出测试类代码和Book类的部分代码,将代码补充完整。

class Book{int bookId;String bookName;double price;// 声明静态变量//定义静态代码块对静态变量初始化//构造方法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 void zongshu()public void totalBook(){return n;
}//重写toString方法public void toString(){return "编号"+bookld+“书名”+bookName+"价格"+"price "+"图书总数目为"+n;}}
public class Test{public static void main(String args[]){ Book[] books = {new Book("c语言程序设计",29.3),new Book("数据库原理",30),new Book("Java学习笔记",68)};System.out.println("图书总数为:"+ Book.totalBook()); for(Book book:books){System.out.println(book.toString());}}   
}

7.什么是单例设计模式?它具有什么特点?用单例设计模式设计一个太阳类Sun。
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。
通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。
如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。显然单例模式的要点有三个:
一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。

public class Sun{private Sun() {}private static Sun sun=new Sun();public static Sun getS() {return sun;}
}

8.理解Java参数传递机制,阅读下面的程序,运行结果是什么?说明理由。

public class Test {String str = new String("你好  ");char[] ch = { 'w','o','l','l','d' };public static void main(String args[]) {Test test = new Test();test.change(test.str, test.ch);System.out.print(test.str);System.out.print(test.ch);}public void change(String str, char ch[]) {str = "hello";ch[0] = 'W';}
}

运行结果:你好 Wolld
没有改变主方法中str的值
总结
equals()方法:用于内容的比较,比较两个字符串内容是否相等

    1. 输出转义字符要加 ,sqrt(".")
      以及spilt断开字符串
      spilt(",");
      arrayfill
  • static关键字在类中可以声明变量或方法。
    • 静态变量(类变量)
      • 用static声明的变量称为静态变量(类变量、全局变量),不带static的变量都是实例变量。
    • 实例变量存储在对象的内存单元中,每个对象的实例变量都有自己的存储空间,通过对象名访问这些实例变量。
    • 静态变量被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中。
      因此,一个类的任何对象访问它时,存取到的都是相同的数值。一个类的任何对象修改它,都是对同一内存单元进行操作。
      可以通过类名或对象名访问它,一般是通过类名完成调用。
    • 静态变量初始化时,变量被计算和赋值,此过程只有一次。
      https://gitee.com/hebau_java_cs16/Java_CS02hzj.git
      没上传成功
      1032276-20180401195318196-1555455145.png
package 类评分;import java.util.Arrays;
import java.util.Scanner;//public
//int i,j;
//int max,min,sum=0;
//int x[]=new int[10];
//int y[]=new int[5];class player{private String bianhao;private String name;private int chengji;public void tell(){System.out.print("编号"+getbianhao()+"姓名"+getname()+"成绩"+getchengji());}public String getbianhao(){return name;}public void setbianhao(){this.bianhao=bianhao;}public String getname(){return name;}public void setname(){this.name=name;}public int getchengji(){return chengji;}public void setchengji(){this.chengji=chengji;}public void toString(){return "编号"+getbianhao()+"姓名"+getname()+"成绩"+getchengji();}/*public void shuru(){int i,j;int max,min,sum=0;int x[]=new int[10];int y[]=new int[5];for(j=0;j<5;j++){for(i=0;i<10;i++){Scanner in=new Scanner(System.in);x[i]=in.nextInt();}}}*/public int paixu(){int i,j;int max,min,sum=0;int x[]=new int[10];int y[]=new int[5];for(j=0;j<5;j++){for(i=0;i<10;i++){Scanner in=new Scanner(System.in);x[i]=in.nextInt();}}for(i=0;i<10;i++){Arrays.sort(x);System.out.print(" "+x[i]); }x[0]=0;x[9]=0;for(i=0;i<10;i++){Arrays.sort(x);System.out.print(" "+x[i]); sum=sum+x[i];}max=x[9];min=x[3];System.out.println(max+min+sum/8);return (max+min+sum/8);}}       
public class 类评分 
{public static void main(String args[]){int a;player p=new player();//p.shuru();p.setbianhao();p.setname();p.setchengji();p.tell();p.paixu();a=p.paixu();System.out.println(a);}}   
package pingfen;import java.util.Arrays;
import java.util.Scanner;public class pingfen {public static void main(String args[]){int i,j;int max,min,sum=0;int x[]=new int[10];int y[]=new int[5];for(j=0;j<5;j++){for(i=0;i<10;i++){Scanner in=new Scanner(System.in);x[i]=in.nextInt();}for(i=0;i<10;i++){Arrays.sort(x);System.out.print(" "+x[i]); }x[0]=0;x[9]=0;for(i=0;i<10;i++){Arrays.sort(x);System.out.print(" "+x[i]); sum=sum+x[i];}max=x[9];min=x[3];System.out.print("max="+max+"min="+min+"sum/8="+sum/8); 
}
}
}
package youxiang;
import java.util.Scanner;
public class youxiang {public static void main(String args[]){System.out.println("请输入Email");System.out.println("Email格式为6845846@。com");Scanner input=new Scanner(System.in);String mail=input.nextLine();//输入邮箱System.out.println(mail.varchar(10));System.out.println(mail.indexOf("@")+1);System.out.println(mail.indexOf(".")+1);if(mail.indexOf("@")==0){//@不能开头System.out.println("Email不合规格"+"  请重新输入");  }//if(mail.indexOf("@")!=0)else{if(mail.indexOf(".")>mail.indexOf("@")){System.out.println("请输出Email"+'\n'+mail);//  if(mail.endsWith("com||cn||net||gov||edu||org")){//  System.out.println("mail");//}}}}
}package youxiang;
import java.util.Scanner;
public class youxiang {public static void main(String args[]){System.out.println("请输入Email");System.out.println("Email格式为6845846@。com");Scanner input=new Scanner(System.in);String mail=input.nextLine();//输入邮箱System.out.println(mail.indexOf("@")+1);System.out.println(mail.indexOf(".")+1);//if(mail.indexOf("@")==0){//@不能开头//System.out.println("Email不合规格"+"  请重新输入");    //}if(mail.indexOf("@")!=0)//else{if(mail.indexOf(".")>mail.indexOf("@")){//“。”不能在“@”前面System.out.println("请输出Email"+'\n'+mail);System.out.println(mail.substring(10));//  if(mail.endsWith("com||cn||net||gov||edu||org")){//  System.out.println("mail");//}}}}}
package find;import java.util.Scanner;public class find {
public static void main(String args[]){
System.out.println("请输入字符串");
Scanner input=new Scanner(System.in);
String str=input.nextLine();
String s[]=str.split(",");
int b=0,c=0,d=0;
for(int i=0;i<s.length;i++)
{System.out.println(s[i]);//String a[]=str.split("\\.");//System.out.println(a[i]);if(s[i].endsWith(".java")){b++;}if(s[i].endsWith(".cpp")){c++;}if(s[i].endsWith(".txt")){d++; }String n=s[i].substring(0,1);System.out.println(n.toUpperCase()+s[i].substring(1,s[i].length()));}
System.out.println(".java出现的次数为:"+b); 
System.out.println(".cpp出现的次数为:"+c);
System.out.println(".txt出现的次数为:"+d);
}
}package find;import java.util.Scanner;public class find {
public static void main(String args[]){
System.out.println("请输入字符串");
Scanner input=new Scanner(System.in);
String str=input.nextLine();
String s[]=str.split(",");
int b=0,c=0,d=0;
for(int i=0;i<s.length;i++)
{System.out.println(s[i]);//String a[]=str.split("\\.");//System.out.println(a[i]);if(s[i].endsWith(".java")){b++;}if(s[i].endsWith(".cpp")){c++;}if(s[i].endsWith(".txt")){d++; }String n=s[i].substring(0,1);System.out.println(n.toUpperCase()+s[i].substring(1,s[i].length()));}
System.out.println(".java出现的次数为:"+b); 
System.out.println(".cpp出现的次数为:"+c);
System.out.println(".txt出现的次数为:"+d);
}
}
class Datetime {private int year;private int month;private int day;public Datetime () {}public Datetime(int year,int month,int day) {this.year=year;this.month=month;this.day=day;}public void geteyear(int year) {this.year=year;}public int setyear() {return year;}public void getetmonth(int month) {this.month=month;}public int setmonth() {return month;}public void getday(int day) {this.day=day;}public int setday() {return day;}public String toString() {return year+"-"+month+"-"+day;}}

转载于:https://www.cnblogs.com/hezhengjia/p/8681803.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/486470.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌开源能翻译101种语言的AI模型,只比Facebook多一种

大数据文摘出品来源&#xff1a;VB10月底&#xff0c;Facebook发布了一款可翻译100种语言的机器学习模型&#xff0c;微软发布了一款能翻译94种语言的模型&#xff0c;谷歌自然也不甘示弱。继Facebook和微软后&#xff0c;谷歌开源了一种名为MT5的模型&#xff0c;称该模型在一…

只需十四步:从零开始掌握 Python 机器学习(附资源)

分享一篇来自机器之心的文章。关于机器学习的起步&#xff0c;讲的还是很清楚的。原文链接在&#xff1a;只需十四步&#xff1a;从零开始掌握Python机器学习&#xff08;附资源&#xff09; Python 可以说是现在最流行的机器学习语言&#xff0c;而且你也能在网上找到大量的资…

druid seata 配置_架构设计 | 基于Seata中间件,微服务模式下事务管理

一、Seata简介1、Seata组件Seata是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata将为用户提供了AT、TCC、SAGA、XA事务模式&#xff0c;为用户打造一站式的分布式解决方案。2、支持模式AT 模式基于支持本地 ACID 事务的关系型数…

数据卡片_VISA消息:关于VCPS 2.1卡片产品的性能和交叉测试的卡片个性化数据的更新...

我们都知道从2020年6月1日起&#xff0c;所有用于性能和交叉测试的卡片样品都必须采用新的个性化数据用于卡片的个性化。需要注意的是&#xff0c;Visa已经发布了用于产品性能和交叉测试的卡片个性化数据2.0版本&#xff0c;支持VCPS 2.1.x产品。从2020年7月27日起&#xff0c;…

一文剖析2020年最火十大物联网应用|IoT Analytics 年度重磅报告出炉!

来源&#xff1a;北京物联网智能技术应用协会知名物联网研究机构IoT Analytics 2020年的最新报告显示&#xff0c;与往年相比&#xff0c;当前大多数物联网项目仍然落地于工业/制造业领域&#xff0c;另外&#xff0c;交通、能源、零售及医疗保健等垂直领域的市场份额也相对增加…

jbutton添加点击事件_electron-vue自定义边框后点击事件失效问题

问题描述&#xff1a;electron-vue自定义边框后点击事件失效&#xff08;不单单点击事件&#xff0c;窗体内所有事件都失效&#xff09;解决方案&#xff1a;在需要事件处理的节点上添加样式-webkit-app-region:no-drag;srcmainindex.js中设置&#xff1a;/**在样式文件中&…

新一代人工智能白皮书(2020年) ——产业智能化升级

全文共计1278字64图&#xff0c;预计阅读时间10分钟来源 | CIE智库&#xff08;转载请注明来源&#xff09;编辑 | 蒲蒲当前&#xff0c;我国经济发展进入新阶段&#xff0c;既面临产业转型升级与重塑国际经济格局的机遇&#xff0c;也面对传统要素红利衰减、经济增速换挡、经济…

世界半导体集成电路发展史(超细、超全)

来源&#xff1a;ittbank半导体集成电路发展史集成电路从产生到成熟大致经历了如下过程&#xff1a;电子管——晶体管——集成电路——超大规模集成电路晶体管的演变集成电路的前奏——电子管、晶体管 电子管&#xff0c;是一种在气密性封闭容器中产生电流传导&#xff0c;利用…

北大发布最新《图神经网络推荐系统》2020综述论文,27页pdf

来源&#xff1a;专知随着网络信息的爆炸式增长&#xff0c;推荐系统在缓解信息过载方面发挥了重要作用。由于推荐系统具有重要的应用价值&#xff0c;这一领域的研究一直在不断涌现。近年来&#xff0c;图神经网络(GNN)技术得到了广泛的关注&#xff0c;它能将节点信息和拓扑结…

anaconda镜像源配置_Anaconda使用技巧,如何修改国内镜像源?

在使用Anaconda时有时候需要加载别的模块这个时候需要通过官网下载模块由于官网的服务器在国外那个下载速度真的是慢到天际还好可以通过修改镜像这样下载模块会快很多本文讲Anaconda修改国内镜像源Anaconda修改国内镜像源通过conda config命令生成配置文件这里&#xff0c;我们…

HDU 5869.Different GCD Subarray Query-区间gcd+树状数组 (神奇的标记右移操作) (2016年ICPC大连网络赛)...

树状数组。。。 Different GCD Subarray Query Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1541 Accepted Submission(s): 599 Problem DescriptionThis is a simple problem. The teacher gives Bob a lis…

c++ mmap写入速度_内存管理(24)mmap和缺页中断

相关文件&#xff1a;mm/mlock.cmm/util.cmm/mmap.cinclude/linux/slab.hmmap系统调用陷入内核中会调用vm_mmap_pgoff>do_mmap_pgoff函数来真正完成mmap操作1.1.do_mmap_pgoff函数(关键部分代码)do_mmap_pgoff16行&#xff1a;对需要映射的内存长度页对齐20行&#xff1a;ge…

邬贺铨院士:边缘计算“新十问”

来源&#xff1a;C114通信网作者&#xff1a;水易两年前的边缘计算技术峰会上&#xff0c;中国工程院院士邬贺铨就边缘计算提出十问&#xff0c;直戳技术演进与产业发展的核心问题&#xff0c;引起业内巨大反响。在过去两年中&#xff0c;边缘计算产业得到了长足发展&#xff0…

java 字符串第一个字符_深入Java源码剖析之字符串常量

字符串在Java生产开发中的使用频率是非常高的&#xff0c;可见&#xff0c;字符串对于我们而言非常关键。那么从C语言过来的同学会发现&#xff0c;在C中是没有String类型的&#xff0c;那么C语言要想实现字符串就必须使用char数组&#xff0c;通过一个个的字符来组拼成字符串。…

耗时11年,120页论文,中科大数学家成功证明微分几何核心猜想

大数据文摘出品近日&#xff0c;中国科技大学几何与物理研究中心创始主任陈秀雄教授与王兵教授团队发布论文“Space of Ricci flows (II)—Part B: Weak compactness of the flows”&#xff0c;在全球范围内率先证明了“哈密尔顿-田”和“偏零阶估计”这两个困扰数学界20多年的…

java 写入txt_Java线程转储的8个选项

线程转储是诊断CPU尖峰&#xff0c;死锁&#xff0c;内存问题&#xff0c;无响应的应用程序&#xff0c;较差的响应时间以及其他系统问题的重要工件。有很多很棒的在线线程转储分析工具&#xff0c;可以分析和发现问题。但是对于那些工具&#xff0c;您需要提供适当的线程转储作…

重磅!2020年度人类社会发展十大科学问题发布

来源&#xff1a;科技导报 在11月9日下午的第二届世界科技与发展论坛的闭幕式上&#xff0c;中国工程院院士、清华大学教授、《Research》编委周济和《柳叶刀》主编&#xff0c;爱思唯尔柳叶刀系列期刊总编辑、理查德霍顿共同发布了“2020年度人类社会发展十大科学问题”。本次…

前端导出excel文件带样式_vue前端使用xlsx导出数据到excel中--最简单的方式

最新项目中需要将页面数据导出到excel中&#xff0c;首先想到的就是度娘&#xff0c;得到的结果都是千篇一律&#xff0c;答案都是你复制我我复制你的&#xff0c;虽然能解决问题&#xff0c;但是这个过程也太复杂。既然无法改变&#xff0c;那就只好插手你的生活了。废话少说&…

7种情绪,人类心智的通用模块

来源&#xff1a;混沌巡洋舰1859年&#xff0c;达尔文以一个挑衅性的断言结束了他的《物种起源》&#xff0c;那就是‘人类的起源和他的历史将会被&#xff08;进化&#xff09;点亮’。在他的后期著作《人类的由来》(1和《人类与动物的情感表达》中&#xff0c;达尔文阐明了人…

gitbook mysql_使用Gitbook做笔记

一、安装# 通过npm全局安装npm install gitbook-cli -g# 查看版本gitbook --version二、创建一本书2.1 本地创建# 创建一个文件夹mkdir mysql-note# 初始化cd mysql-notegitbook init# 会创建两个文件# README.md 书皮# SUMMARY.md 目录# 从本地打开这本书gitbook serve# 将md文…