Java类中的构造函数?

问题描述

Java类中的构造函数?

class Circle
{
double radius;

Circle()
{
    radius = 1.0;
}

Circle(double newRadius)
{
    radius = newRadius;//为什么不写成 newRadius = radius?
}

}

解决方案

可以是可以,但是如果是newRadius = radius,则代表将radius的值赋给newRadius,在初始化的时候Circle circle = new Circle(11);,将radius的值(值为0)赋给newRadius,当打印circle.radius值的时候始终为0,失去了构造函数初始化变量值的意义。

解决方案二:

因为radius才是类的成员变量,newRadius只是构造方法的参数

解决方案三:

为什么不写成 newRadius = radius?
什么意思啊?你要干嘛

解决方案四:

Circle(double newRadius)
{
newRadius = radius; //写了这样,你传进来的参数还有什么用?
}

解决方案五:

因为你定义的全局变量是radius,而newRadius 是你构造函数的参数,所以应该是把参数的值赋给你的变量。而不是把变量的值赋给参数。再加上你的变量radius
本身你就没有给初始化的值,更不能给其他变量赋值了。radius = 1.0;只是在调用Circle()这个构造方法才会执行的。
构造

解决方案六:

Circle(double newRadius)
{
radius = newRadius;//为什么不写成 newRadius = radius?
} 构造函数的目的是初始化。如果你写成newRadius = radius? 那么你传的参数就没用了。那还不如直接定义个double newRadius = radius;
radius = newRadius; 这句是把你传进来的参数赋给全局变量radius .

解决方案七:

首先:
Java 里面
double A;
double B = 1;
A = B; 的意思是将B赋值给A,就是说A就变成了1
然后: 构造函数的目的是创建一个当前类的对象,当前类的对象的成员变量可能需要初始化
最后:
Circle()
{
radius = 1.0;
}
Circle(double newRadius)
{
radius = newRadius;//为什么不写成 newRadius = radius?
}
都是在将成员变量radius 进行初始化操作;

解决方案八:

没有意义,参数是外面传进来的,你改变它没有人知道,也不会对代码起任何作用。

好比你为什么要听收音机。难道你不能对着收音机说话么?因为收音机就是让你听的,你对它说话没人理睬你。

时间: 2024-09-11 11:06:45

Java类中的构造函数?的相关文章

java类-JAVA类中赋值问题,需要解释一下谢谢啦

问题描述 JAVA类中赋值问题,需要解释一下谢谢啦 class Test{ private DBUtil db=new DBUtil; private Connection conn=db.getConnect();//这些方法都有,getConnect是自己写的获得连接的方法,这样写是没有问题的. //接下来写各种方法 public xxxx(){} } class Test{ private DBUtil db=new DBUtil; private Connection conn=null

Java类中域和方法设置中的常见错误

在Java程序中,类是其实现功能的核心.如果说开发Java应用程序,就是一个类的构建与使用的过程这一点都不为过.可惜的是,不少程序员在编写类的时候,还是会犯一些常规的错误.笔者就对此做一个总结,望各位读者能够引起重视. 一.基本数据类型的初始化问题. 在Java语言中,跟其他开发语言一样,都定义了一些基本的数据类型.程序员可以拿来直接使用,还可以用来构造其他一些复杂的应用程序.不过在Java中使用这些基本数据类型有些不同.在Java语言中,这个基本数据类型主要用在两个地方,分别为类中的成员或者局

Java语言入门教程(七):Java类中的各种数据

本文是Java教程之Java类中的各种数据部分. 按照数据声明的位置,Java类可以分为两类,声明位置的不同,作用域就有所不同. 1.数据成员:在类体中声明的数据,称为数据成员. 2.局部变量:在方法中声明的数据,称为局部变量,也称为本地变量,方法变量,自 动变量.局部变量只能在该方法中使用. 如下例所示: package com.csst.test; public class TestData { /** * @param args */ //1.数据成员 private int x; pri

java类中方法调用问题

问题描述 java类中方法调用问题 import java.awt.*;import javax.swing.*;import java.awt.event.*; public class TestTextComponent extends JFrame { private JTextField textField = new JTextField(15); private JPasswordField passwordField = new JPasswordField(15); privat

java类的问题-java类中的返回语句提取

问题描述 java类中的返回语句提取 interface Car{ String getName(); int getPrice(); int getQuan(); int getIndividualSales(); } class CarShop{ private int money_a=0; private int money_b=0; public void saleCar(Car car){ System.out.println("品牌"+car.getName()+"

activity-如何在java类中访问自定义的对象?

问题描述 如何在java类中访问自定义的对象? 我想在java类中访问自定义的对象,这个java类中包括ApplicationContext 对象. 我创建了一个自定义的应用程序类: class A extends android.app.Application{ public String abc = "xyz"; } 一个简单的java类: class B { private appContext; // This constructor is called from activi

java基础-java类中的代码运行顺序

问题描述 java类中的代码运行顺序 下面列子:public class A{ private List list=new ArrayList(); public static void main(string[] args){ A a=new A(); } }问 :1,该类什么时候被编译?什么时候被加载? 2,在运行该类的时候list 对象是在main函数执行过才有的么?还是说在加载的时候就已经被创建了? 3,如果其中有静态代码块,那么静态代码块在类加载的时候就被执行了么?也就是说在main函

java 类-Java 类中的属性存储问题

问题描述 Java 类中的属性存储问题 Java中的方法存储在全局代码区之中,那么类中的属性存储在哪里呢?(父子类中同名的方法会被辅写,但是同名的属性却毫无影响?) 解决方案 父类属性可以继承,但不可以覆盖的.java中属性及类的定义信息都会被放在方法区中 解决方案二: Java中的存储问题关于java中的存储问题java继承 父类子类方法调用问题 属性和静态方法是没有多态的 解决方案三: java中的变量存在栈中 解决方案四: 变量和属性都是存储在栈中,,对象都是存储在堆中所以对象的属性重名是

在java类中写带中文的sql语句,查询结果为空

问题描述 在java类中写带中文的sql语句,查询结果为空 String query="select * from Restaurant where Restaurant_name='紅樹林';"; rs=stm.executeQuery(query); 这是我在封装好的数据库类中写的sql语句,查询结果为空(rs.next() 为false ) 如果改用id查询,即: String query="select * from Restaurant where Restaura