class Trangle{
double sideA, sideB, sideC, area, length;
boolean flag;
Trangle(double a, double b, double c){//public
if(a < (b + c) && b < (a + c) && c < (a + b)){
sideA = a;
sideB = b;
sideC = c;
flag = true;
}
else
flag = false;
}
double getLength(){//public
length = sideA + sideB + sideC;
return length;
}
double getArea(){//public
if(flag){
double p = (sideA + sideB + sideC)/2.0;
area = Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));
return area;
}
else{
System.out.println("This is not a trangle");
return 0;
}
}
void setABC(double a, double b, double c){//public
if(a < (b + c) && b < (a + c) && c < (a + b)){
sideA = a;
sideB = b;
sideC = c;
flag = true;
}
else{
flag = false;
sideA = sideB =sideC = 0;
}
}
} class Lader{
double above,botton,height,area;
Lader(double a,double b, double h){
above =a;
botton = b;
height = h;
}
public double getArea(){
area = (above + botton)*height/2.0;
return area;
}
} class Circle{
double radius, area;
Circle(double r){
if(r > 0)
radius = r;
else
radius = 0;
}
double getRadius(){
return radius;
}
double getArea(){
area = Math.PI * radius * radius;
return area;
}
double getLength(){
return 2 * Math.PI * radius;
}
void setRadius(double r){
if(r > 0)
radius = r;
else
radius = 0;
}
} public class AreaAndLength{
public static void main(String[] args){
double length, area;
Circle circle = null;
Trangle trangle = null;
Lader lader = null;
circle = new Circle(2.0);
trangle = new Trangle(5.0, 3.0, 4.0);
lader = new Lader(4, 8, 5); length = circle.getLength();
System.out.print("\nCircle's length is "+ length);
area = circle.getArea();
System.out.println(". Area is "+ area +".\n"); length = trangle.getLength();
System.out.print("Trangle's length is "+ length);
area = trangle.getArea();
System.out.println(". Area is "+ area +".\n"); area = lader.getArea();
System.out.println("Lader's area is "+ area +".\n"); trangle.setABC(12, 34, 1);
area = trangle.getArea();
System.out.print("This nwe trangle's area is "+ area);
length = trangle.getLength();
System.out.println(". Length is "+ length +".\n");
}
}

trangle类的成员函数加不加public都可以运行成功,什么原因呢?

类中定义成员方法。加不加public有什么区别?的更多相关文章

  1. Java中主类中定义方法加static和不加static的区别

     Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用(类名.方法),后者必须先实例化后用实例调用) 知识点:1.Getter and Setter 的应用 ...

  2. Java基础(42):Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用,后者必须先实例化后用实例调用)

    package lsg.ap.april4th2; /* 知识点:1.Getter and Setter 的应用 2.局部变量与成员变量(也可叫做全局变量) 3.Static关键字的用法 a.成员变量 ...

  3. JAVA中,一个类中,方法加不加static的区别,

    通俗理解: 1.若是对象的特有行为,(也就是某个实例方法特有的行为),不加static 2. 若是对象集合共有的集合,则加static static类型方法只可以访问静态变量和方法 实例方法可以访问实 ...

  4. MFC 如何在一个类中使用在其他类中定义的变量或函数

    [声明:本文的知识点来源于网络,参考网址:https://blog.csdn.net/bill_ming/article/details/7407848] [以下三种方法亲测有效,可以根据具体情况来选 ...

  5. java类中定义接口

    今天看到一个java类中定义了接口,写个备忘录,记录一下 package com.gxf.test; public class Test_interface { public interface sh ...

  6. 基类中定义的虚函数在派生类中重新定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型及参数的先后顺序,都必须与基类中的原型完全相同 but------> 可以返回派生类对象的引用或指针

      您查询的关键词是:c++primer习题15.25 以下是该网页在北京时间 2016年07月15日 02:57:08 的快照: 如果打开速度慢,可以尝试快速版:如果想更新或删除快照,可以投诉快照. ...

  7. c++中在一个类中定义另一个只有带参数构造函数的类的对象

    c++中在一个类中定义另一个只有带参数构造函数的类的对象,编译通不过 #include<iostream> using namespace std; class A { public:  ...

  8. Scala的类中定义内部类实战

    scala独特之处在于可以在类中定义内部类,起到对外屏蔽作用. 类中默认都是public权限.后面将讲解如何引入接口,scala中的接口与java点区别.特质/接口(Trait)

  9. 泛型方法或泛型类中的方法是内部调用、PInvoke 或是在 COM 导入类中定义的。

    泛型基类中引用Api函数定义时static extern,在子类中会提示: 未处理TypeLoadException 泛型方法或泛型类中的方法是内部调用.PInvoke 或是在 COM 导入类中定义的 ...

随机推荐

  1. 牛客 70E 乌龟跑步 (bitset优化dp)

    有一只乌龟,初始在0的位置向右跑. 这只乌龟会依次接到一串指令,指令T表示向后转,指令F表示向前移动一个单位.乌龟不能忽视任何指令.现在我们要修改其中正好n个指令(一个指令可以被改多次,一次修改定义为 ...

  2. vb.net DBEntities框架联表查询 Join

    在项目中配置好DBEntities 使用两个表:主表Table, 子表Table_Item 主要是用到了委托和泛型,ForEach用的是不带返回值的委托 Sub GetDb() Dim st As N ...

  3. unity ugui image更换图片

    1:利用资源加载方式 using UnityEngine; using System.Collections; using UnityEngine.UI; public class ChangeIma ...

  4. MFC + XToolKit的使用 ( 亲自实践 )

    1. 变量声明: 在Dlg.h    的public下 CXTPButton m_Button2; 2. 变量交换并设置按钮风格: Dlg.cpp下 void CXT_VS2010Dlg::DoDat ...

  5. redis的数据结构及操作命令

    一.字符串: redis中最为基础的存储类型,以二进制存储,value的字符串最多512M,Key做多1024字节. 常用命令:赋值(set).取值(get).删除(del),递增(incr/incr ...

  6. python版本

    一般在Linux下,默认会安装一个python2.*的版本,但是我们自己开发有时候需要python3.*的版本 1. 安装python3 .安装依赖包 )首先安装gcc编译器,gcc有些系统版本已经默 ...

  7. http://www.moext.com博客搬家到这里啦

    1.原博客莫叉特用的是自己的域名http://www.moext.com,由于服务器在国外,访问不太稳定,SEO做得也很不好: 2.喜欢博客园的极简风格,目前来看广告量也在可接受范围: 3.一个偶然的 ...

  8. Linux中 tr 命令详解

    tr - translate or delete characters 主要用于转换和删除字符 带有最常用选项的t r命令格式为:tr -c -d -s [ "string1_to_tran ...

  9. python之时间日期calendar

    calendar是与日历相关的模块,calendar模块文件里定义了很多类型,主要有Calendar,TextCalendar以及HTMLCalendar类型.其中,Calendar是TextCale ...

  10. export命令用来设置环境变量。

    sh-# export export CONSOLE="/dev/console" export HOME="/" export LD_LIBRARY_PATH ...