Java中的类和对象
Posted nuist__NJUPT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的类和对象相关的知识,希望对你有一定的参考价值。
Java中的类和对象
- 定义一个名为Person的类
- 包括:String类型的成员变量name,int类型的成员变量age,
- 定义两个变量的访问方法与修改方法
- 定义一个名为speak的方法,输出name和age
/**
* 定义一个名为Person的类
* 包括:String类型的成员变量name,int类型的成员变量age,
* 定义两个变量的访问方法与修改方法
* 定义一个名为speak的方法,输出name和age
*
*/
public class Person {
String name ; //成员变量
int age ;
public void setName(String name){ //修改方法
this.name = name ;
}
public String getName(){ //访问方法
return name ;
}
public void setAge(int age){
this.age = age ;
}
public int getAge(){
return age ;
}
public void speak(){ //自定义的方法
System.out.println("姓名:" + " " + name + "年龄:" + age) ;
}
public static void main(String[] args){
Person person = new Person() ; //实例化类的对象
person.setName("王国栋") ;
person.setAge(24) ;
System.out.println("姓名:" + person.getName() + " " + "年龄:" + person.getAge()) ;
person.speak() ;
}
}
- 定义一个Circle类
- 包括:double类型的圆心坐标centreX和centreY
- double类型圆形的半径radius,为半径定义访问和修改方法
- 定义求面积的方法getArea()和求周长的方法getPerimeter()
- 定义带参数的构造方法,给出圆形的半径创建圆形的对象
- 定义默认的构造方法,在该方法中调用带参数的构造方法,将圆形的半径设置为1.0
/**
* 定义一个Circle类
* 包括:double类型的圆心坐标centreX和centreY
* double类型圆形的半径radius,为半径定义访问和修改方法
* 定义求面积的方法getArea()和求周长的方法getPerimeter()
* 定义带参数的构造方法,给出圆形的半径创建圆形的对象
* 定义默认的构造方法,在该方法中调用带参数的构造方法,将圆形的半径设置为1.0
*/
public class Circle {
double centreX ;
double centreY ;
double radius ;
public Circle(){
this(1.0) ;
}
public Circle(double radius ){
this.radius = radius ;
}
public void setRadius(double radius){
this.radius = radius ;
}
public double getRadius(){
return radius ;
}
public double getArea(){
return Math.PI * radius * radius ;
}
public double getPerimeter(){
return 2 * Math.PI * radius ;
}
public static void main(String[] args){
Circle circle = new Circle() ;
System.out.println("圆形的半径:" + circle.radius) ;
System.out.println("圆形的面积:" + circle.getArea()) ;
System.out.println("圆形的周长:" + circle.getPerimeter()) ;
circle.setRadius(2.0) ;
System.out.println("圆形的半径:" + circle.getRadius()) ;
System.out.println("圆形的面积" + circle.getArea()) ;
System.out.println("圆形的周长:" + circle.getPerimeter()) ;
}
}
- 定义一个Rectangle类
- 包括:double型的length和width的成员变量,为变量定义访问方法和修改方法
- 定义求周长getPerimeter()和求面积gteArea()的方法
- 定义带参数的构造方法,通过给出的长和宽创建对象
- 定义默认构造方法,在该方法中 调用带参数的构造方法,将矩形的长和宽都设置为1.0
/**
* 定义一个Rectangle类
* 包括:double型的length和width的成员变量,为变量定义访问方法和修改方法
* 定义求周长getPerimeter()和求面积gteArea()的方法
* 定义带参数的构造方法,通过给出的长和宽创建对象
* 定义默认构造方法,在该方法中 调用带参数的构造方法,将矩形的长和宽都设置为1.0
*/
public class Rectangle {
double length ; //成员变量
double width ;
public Rectangle(){ //默认的构造方法,调用带参数的构造方法
this(1.0,1.0) ;
}
public Rectangle(double length, double width){ //带两个参数的构造方法
this.length = length ;
this.width = width ;
}
public void setLength(double length){ //修改方法
this.length = length ;
}
public double getLength(){ //访问方法
return length ;
}
public void setWidth(double width){
this.length = length ;
}
public double getWidth(){
return width ;
}
public double getArea(){ //计算面积方法
return length * width ;
}
public double getPerimeter(){ //计算周长的方法
return 2 * (length + width) ;
}
public static void main(String[] args){
Rectangle rectangle = new Rectangle() ;
System.out.println("长为:" + rectangle.getLength()) ;
System.out.println("宽为:" + rectangle.getWidth()) ;
System.out.println("矩形的面积为:" + rectangle.getArea()) ;
System.out.println("矩形的周长为:" + rectangle.getPerimeter()) ;
rectangle.setLength(3.0) ;
rectangle.setWidth(2.0) ;
System.out.println("长为:" + rectangle.getLength()) ;
System.out.println("宽为:" + rectangle.getWidth()) ;
System.out.println("矩形的面积为:" + rectangle.getArea()) ;
System.out.println("矩形的周长为:" + rectangle.getPerimeter()) ;
}
}
- 定义Triangle类
- 包括:三个double型的变量a,b,c表示三边长
- 定义两个构造方法 ,默认构造方法设置三边长都为0.0
- 带三个参数的构造方法通过传递三个参数创建三角形对象
- 定义求面积的方法area(),面积计算公式为:area = Math.sqrt(s*(s-a)(s-b)(s-c)),其中s=(a+b+c)/2
/**
* 定义Triangle类
* 包括:三个double型的变量a,b,c表示三边长
* 定义两个构造方法 ,默认构造方法设置三边长都为0.0
* 带三个参数的构造方法通过传递三个参数创建三角形对象
* 定义求面积的方法area(),面积计算公式为:area = Math.sqrt(s*(s-a)*(s-b)*(s-c)),其中s=(a+b+c)/2
*/
public class Triangle {
double a, b, c ;
public Triangle(){
this.a = 0.0;
this.b = 0.0 ;
this.c = 0.0 ;
}
public Triangle(double a, double b, double c){
this.a = a ;
this.b = b ;
this.c = c ;
}
public double area(){
double s = (a + b + c) / 2 ;
return Math.sqrt(s*(s-a)*(s-b)*(s-c)) ;
}
public static void main(String[] args){
Triangle triangle = new Triangle(3.0,3.3,3.0) ;
System.out.println(triangle.area()) ;
}
}
- 定义一个Stock类表示股票
- 一个名为symbol的字符串数据表示股票代码
- 一个名为name的字符串数据表示股票名称
- 一个名为previousPrice的double类数据,表示前一日的股票价格
- 一个名为currentPrice的double型数据,表示股票的当前价格
- 创建一个名为getChangePercent()的方法,返回从前一日价格到当前价格变化的百分比
/**
* 定义一个Stock类表示股票
* 一个名为symbol的字符串数据表示股票代码
* 一个名为name的字符串数据表示股票名称
* 一个名为previousPrice的double类数据,表示前一日的股票价格
* 一个名为currentPrice的double型数据,表示股票的当前价格
* 创建一个名为getChangePercent()的方法,返回从前一日价格到当前价格变化的百分比
*/
public class Stock {
String symbol ; //成员变量
String name ;
double previousPrice ;
double currentPrice ;
public Stock(String symbol, String name){ //带两个参数的构造方法
this.symbol = symbol ;
this.name = name ;
}
public void setPreviousPrice(double previousPrice){ //修改方法
this.previousPrice = previousPrice ;
}
public double getPreviousPrice(){ //访问方法
return previousPrice ;
}
public void setCurrentPrice(double currentPrice){
this.currentPrice = currentPrice ;
}
public double getCurrentPrice(){
return currentPrice;
}
public double getChangePercent(){ //求百分比的方法
return 100 * ((getCurrentPrice() - getPreviousPrice()) / getPreviousPrice() );
}
public static void main(String[] args){
Stock stock = new Stock("600000","浦发银行") ;
stock.setCurrentPrice(25.5) ;
stock.setPreviousPrice(28.6) ;
System.out.println(stock.getChangePercent()) ;
}
}
- 使用递归打印斐波那契数列的前20项
- 斐波那契数列第一个和第二个数都是1,以后每个数是前两个数字之和
/**
* 使用递归打印斐波那契数列的前20项
* 斐波那契数列第一个和第二个数都是1,以后每个数是前两个数字之和
*/
public class Fibonacci {
public static long fib(int n){
if(n == 1 || n == 2){
return 1 ;
}
return fib(n-1) + fib(n - 2) ;
}
public static void main(String[] args){
for(int i=1; i<=20; i++){
System.out.print(fib(i) + " ") ;
}
}
}
- 为二元一次方程设计一个名为 QuadraticEquation的类
- 包括:三个私有数据a,b,c
- 一个带参数a,b,c的构造方法
- a,b,c三个get方法
- 一个名为getDiscriminant()的方法返回判别式b^2-4ac
- 名为getRoot1()的方法和getRoot2()的方法返回方程的两个根
/**
* 为二元一次方程设计一个名为 QuadraticEquation的类
* 包括:三个私有数据a,b,c
* 一个带参数a,b,c的构造方法
* a,b,c三个get方法
* 一个名为getDiscriminant()的方法返回判别式b^2-4*a*c
* 名为getRoot1()的方法和getRoot2()的方法返回方程的两个根
*/
public class QuadraticEquation {
private double a, b, c ; //成员变量
public QuadraticEquation(double a, double b, double c){ //带三个参数的构造方法
this.a = a ;
this.b = b ;
this.c = c ;
}
public double getA(){ //访问方法
return a ;
}
public double getB(){
return b ;
}
public double getC(){
return c ;
}
public double getDiscriminant(){ //得到判别式b^2-4*a*c的方法
return b * b - 4 * a * c ;
}
public double getRoot1(){ //第一个根
return (-b + Math.sqrt(getDiscriminant())) / (2 * a) ;
}
public double getRoot2(){ //第二个根
return (-b - Math.sqrt(getDiscriminant())) / (2 * a) ;
}
public static void main(String[] args){
Scanner input = new Scanner(System.in) ;
double a = input.nextDouble() ; //键盘输入三个系数
double b = input.nextDouble() ;
double c = input.nextDouble() ;
QuadraticEquation quadraticEquation = new QuadraticEquation(a, b, c) ;
System.out.println("系数a = " + quadraticEquation.getA() + " " + "系数b = " + quadraticEquation.getB() + " " + "系数c = " + quadraticEquation.getC()) ;
if(quadraticEquation.getDiscriminant() < 0){
System.out.println("方程无根!") ;
}
else if(quadraticEquation.getDiscriminant() == 0){
System.out.println("方程的唯一根为:" + quadraticEquation.getRoot1()) ;
}
else{
System.out.println("方程的第一个根为:" + quadraticEquation.getRoot1()) ;
System.out.println("方程的第二个根为:" + quadraticEquation.getRoot2()) ;
}
}
}
- 定义一个名为TV的电视类
- 每个电视机都是一个对象,每个对象都有状态(电源开或关,当前频道,当前音量)
- 以及动作(打开,关闭,转换频道,调节音量等)
- 频道1-100,音量1-7
/**
* 定义一个名为TV的电视类
* 每个电视机都是一个对象,每个对象都有状态(电源开或关,当前频道,当前音量)
* 以及动作(打开,关闭,转换频道,调节音量等)
* 频道1-100,音量1-7
*/
public class TV {
private int channel = 1 ; //TV的当前频道
private int volumeLevel = 1 ; //TV的当前音量
private boolean on ; //TV是开还是关
public TV(){} //默认构造方法
public void turnOn(){ //打开TV
on = true ;
}
public void turnOff(){ //关闭TV
on = false ;
}
public void setChannel(int newChannel){ //设置新频道
if(on && (newChannel >= 1 && newChannel <= 100)){
channel = newChannel ;
}
}
public void setVolume(int newVolume){ //设置新音量
if(on && (newVolume >= 1 && newVolume <= 7)){
volumeLevel = newVolume ;
}
}
public void channelUp(){ //频道加1
if(on && channel < 100) {
channel++;
}
}
public void channelDown(){ //频道减1
if(on && channel > 1){
channel -- ;
}
}
public void volumeUp(){ //音量加1
if(on && volumeLevel < 7){
volumeLevel ++ ;
}
}
public void volumeDown(){ //音量减1
if(on && volumeLevel > 1){
volumeLevel -- ;
}
}
public static void main(String[] args){
TV tv = 以上是关于Java中的类和对象的主要内容,如果未能解决你的问题,请参考以下文章