构造⽅法的特点
构造⽅法的特点
1. 构造⽅法没有返回值,⽽不是返回值是void
2. 构造⽅法的⽅法名和类名是⼀致的
3. 构造⽅法的⽬的就是实例化对象(将类进⾏实例化,创建存放对象的空间)
4. 构造⽅法可以通过new进⾏调⽤
5. ⼀个类⾥⾯存在默认的构造⽅法(⽆参数),当这个类⾥⾯存在他的重构⽅法,那么默认的⽆参构造就会消失
3:什么是⽅法的重载,谈谈⾃⼰的理解
⽅法的重构也就是重新构造⼀个⽅法,这个新的⽅法要满⾜,同名不同参数(参数的类型或者个数不同,顺序不同)和原来的⽅法,只要传递的参数能够直接的定位到⼀个⽅法就可以构成重构,不看返回值,不看参数名字
4:静态⽅法与成员⽅法的区别?
静态⽅法是属于所属的类的,也就是说只要这个类存在静态⽅法就存在,⽽成员⽅法是通过默认构造⽅法,将其放到对象⾥⾯,在类中的
成员⽅法不存在,只是⼀个模版⼀个设想,调⽤成员⽅法需要通过声明引⽤,并且实例化对象,开辟存放对象的空间,通过引⽤指向对象,然后通过对象调⽤成员⽅法,⽽静态⽅法可以直接通过类名进⾏调⽤,不需要实例化对象,因为其在类中存在,是否能够调⽤,怎么去掉⽤问题的关键点在看⽅法是否存在,由此就可以解释:==实例⽅法可以直接调⽤静态⽅法(⽤存在的去掉⽤存在的),静态⽅法不可以直接调⽤实例⽅法(⽤存在的去调⽤不存在的)==实例⽅法存放在对象⾥⾯,所以需要通过到地址到对象才可以进⾏调⽤
5:什么是匿名对象?什么情况下使⽤匿名对象?
匿名对象也就是没有名字,引⽤,只是开辟了个位置存放对象,没有办法访问调⽤,使⽤过⼀次以后就会⾃动的消除存放对象的空间,清理缓存
6:什么是引⽤的传递?
引⽤的传递也就是值传递,也就是地址的传递,⼀次实例化对象开辟空间存放对象,引⽤的传递(起别
名)
Person per = new Person();
Person per1 = per;
per和per1都指向同⼀个对象
7:什么是类和对象,他们的关系是什么?
类是对象的模版和抽象,对象是类的具体和实现化
8:如何实例化类?构造⽅法的作⽤?
通过new来进⾏实例化类,开辟存放对象的空间,构造⽅法作⽤是实例化类
package newstart;
import java.io.Console;
/**
* // 打印出所有的"⽔仙花数",所谓"⽔仙花数"是指⼀个三位数,
// 其各位数字⽴⽅和等于该数本⾝。例如:153是⼀个"⽔仙花数",
// 因为153=1的三次⽅+5的三次⽅+3的三次⽅
*
* // 题⽬:将⼀个正整数分解质因数。例如:输⼊90,打印出90=2*3*3*5。
*
* //输⼊两个正整数m和n,求其最⼤公约数和最⼩公倍数。
*
* //使⽤双层循环完成下⾯图形
// *
// ***
/
/ *****
// *******
// *********
// *********
// ***********
*/
import java.util.Scanner;
public class text {
public static void main(String[] args){
// a1();
// a2();
/
/ a3();
// a4();
// a5();
// a6();
// a7();
// a8();
// a9();
// a10();
// a11();
// a12();
// a13();
/
/ a14();
// a15();
// a16();
// a17();
nextint()方法// a18();
}
//判断是否是素数
static boolean ishas(int i){
boolean s =true;
for(int j =2; j < i; j++){
if(i % j ==0){
s =false;
}
}
return s;
}
//题⽬:判断101-200之间有多少个素数,并输出所有素数。
public static void a1(){
System.out.println("输出所有的素数:");
int num =0;
for(int i =101; i <200; i++){
if(ishas(i)){
num +=1;
System.out.println(i);
}
}
System.out.print("素数的个数是"+ num +"个");
}
//打印出所有的"⽔仙花数",所谓"⽔仙花数"是指⼀个三位数
//其各位数字⽴⽅和等于该数本⾝。例如:153是⼀个"⽔仙花数",
// 因为153=1的三次⽅+5的三次⽅+3的三次⽅
public static void a2(){
System.out.println("⽔仙花数是:");
for(int i =100; i <999; i++){
int g = i %10;
// 刚刚是从后⾯来看直接看⼗位数的数字,例如153,直接看53,⽽不是看15,正确的看15取得余数正好是5是⼗位的数字int s = i /10%10;
int b = i /100;
// System.out.println("百"+g);
// System.out.println("个"+b);
if(i == b * b * b + s * s * s + g * g * g){
// System.out.println("⼗"+s);
System.out.println(i);
}
}
}
//题⽬:将⼀个正整数分解质因数。例如:输⼊90,打印出90=2*3*3*5。public static void a3(){
// 题⽬:将⼀个正整数分解质因数。例如:输⼊90,打印出90=2*3*3*5。 System.out.println("请输⼊⼀个数:");
Scanner scan =new Scanner(System.in);
int num = Int();
System.out.println(num +"=");
for(int i =2, x = num; x !=1;){
if(x % i !=0){
i++;
}else{
x /= i;
// 判断是否x和i是否相等,等于⼀就不需要进⾏再次计算
System.out.print(i +(x ==1?"":"*"));
}
}
}
//使⽤双层循环完成下⾯图形
//*
//***
//*****
//*******
//*********
/
/***********
public static void a4(){
int a =6;// a是⾏数
for(int i =0; i < a; i++){
for(int j =0; j < a - i; j++){
// j控制空格个数不是a-i 就不是三⾓形
System.out.print(" ");
}
for(int c =1; c <=2*(i +1)-1; c++){// c不等于1 三⾓形就没有尖 System.out.print("*");
}
System.out.println();
}
}
//最⼤公约数和最⼩公倍数
// ⼤的⽤⼩的算
// ⼩的⽤⼤的算
public static void a5(){
System.out.println("输⼊两个正整数:");
Scanner scan =new Scanner(System.in);
int o = Int();
int t = Int();
for(int i = o > t ? t : o; i >1; i--){
if(o % i ==0&& t % i ==0){
System.out.println("最⼤公约"+ i);
break;
}
}
for(int i = o > t ? o : t; i <= o * t; i++){
if(i % o ==0&& i % t ==0){
System.out.println("最⼩公倍"+ i);
break;
}
}
}
// 已知某年某⽉某⽇,判断这⼀天是这⼀年的第⼏天?
public static void a6(){
System.out.println("請輸⼊年⽉⽇:");
Scanner scan =new Scanner(System.in);
int nian = Integer.Line());
int yue = Integer.Line());
int ri = Integer.Line());
boolean is =true;
if(nian %4==0&&(nian %100==0)||(nian %400==0)){ is =true;
}else{
is =false;
}
switch(yue){
case1:
if(ri >1&& ri <31){
System.out.println("這是⼀年中22的第"+ ri +"天");
}else{
System.out.println("無效");
}
break;
case2:
int d;
if(nian %4==0&&(nian %100==0)||(nian %400==0)){ if(ri >1&& ri <29){
d =31+29;
System.out.println("這是⼀p年中的第"+ d +"天");
}else{
System.out.println("無效");
}
}else{
if((ri >1&& ri <28)){
d =31+28;
System.out.println("這是⼀年中的第"+ d +"天");
}else{
System.out.println("無效");
}
}
break;
case3:
if(ri >1&& ri <31){
if(nian %4==0&&(nian %100==0)||(nian %400==0)){ int a =31+29+ ri;
System.out.println("這是⼀年中的"+ a +"天");
}else{
int a =31+28+ ri;
System.out.println("這是⼀年中的第"+ a +"天");
}
}else{
System.out.println("無效");
}
break;
case4:
if(ri >1&& ri <30){
if(nian %4==0&&(nian %100==0)||(nian %400==0)){ int a =2*31+29+ ri;
System.out.println("這是⼀年中的4第"+ a +"天");
}else{
int a =2*31+28+ ri;
System.out.println("這是⼀年中s2的第"+ a +"天");
}
}else{
System.out.println("無效");
}
break;
case5:
if(ri >1&& ri <31){
if(nian %4==0&&(nian %100==0)||(nian %400==0)){ int a =30+2*31+29+ ri;
System.out.println("這是⼀年5中的第"+ a +"天");
}else{
int a =30+31+28+ ri;
System.out.println("這是⼀年d中的第"+ a +"天");
}
}else{
System.out.println("無效");
}
break;
case6:
if(ri >1&& ri <30){
if(nian %4==0&&(nian %100==0)||(nian %400==0)){ int a =30+3*31+29+ ri;
System.out.println("這是⼀年6中的第"+ a +"天");
}else{
int a =30+3*31+28+ ri;
System.out.println("這是⼀f年中的第"+ a +"天");
}
}else{
System.out.println("無效");
}
break;
case7:
if(ri >1&& ri <31){
if(nian %4==0&&(nian %100==0)||(nian %400==0)){ int a =2*30+3*31+29+ ri;
System.out.println("這是⼀年7中的第"+ a +"天");
}else{
int a =2*30+3*31+28+ ri;
System.out.println("這是⼀w年中的第"+ a +"天");
}
}else{
System.out.println("無效");
}
break;
case8:
if(ri >1&& ri <31){
if(nian %4==0&&(nian %100==0)||(nian %400==0)){ int a =2*30+4*31+29+ ri;
System.out.println("這是⼀年8中的第"+ a +"天");
}else{
int a =2*30+4*31+28+ ri;
System.out.println("這是⼀年e中的第"+ a +"天");
}
}else{
System.out.println("無效");
}
break;
case9:
if(ri >1&& ri <30){
if(nian %4==0&&(nian %100==0)||(nian %400==0)){ int a =2*30+5*31+29+ ri;
System.out.println("這是⼀年中9的第"+ a +"天");
}else{
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论