• 女孩:谈Java了,好耶?

  • 男孩:夜谈一下,Java的类的定义~

  • 女孩:那谈Java的类的什么呢?

  • 男孩:类的定义,对象的定义,类中的方法,构造方法,this关键字,方法的重载,Java中的类的访问权限,set和get方法,static关键字~

面向对象设计思想

设计思想的变化

例如:学生行为

对于结构化程序设计:起床,洗脸,吃饭,下课,放学

对于面向对象设计,类,类中的方法

OOP的特点

面向对象的特征

(1)封装

(2)继承

(3)多态

类的定义:

格式:

class Circle{
//类声明,类的命名第一个字母大写以便与对象区别
int r;
//成员变量,或称为类的属性
……
void print(){
//成员方法 int r=3;
//局部变量 System.out.println(r);
} }
//整个大括号里的称为类的主体部分

类的定义

类是一种复杂的数据类型

它是将数据和与数据相关的操作封装在一起的集合体

类分为两部分:类的声明和类的主体。

格式:

<类 声明>

{

<类主体>

}

主体的部分

类主体部分是由成员变量和方法组成,不可以在类中直接写表达式语句,它必须放到一个方法里。

对象的概念

对象是类的实例化

public static void main(String [] args){
Circle circle=new Circle ();//类的实例化
circle.r=1;
...
circle.print();//对象的方法调用
}

对象的创建

格式:

类名 对象名

为声明的对象分配内存,用new和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会默认调用类的构造方法。

Student student = new Student();

对象的使用

格式

对象名.成员变量名

对象名.方法名

“.”这点为英文的点。

如:

student.name

student.print();

类中的方法

在某个方法里的变量为局部变量,在类中的,方法外的变量为成员变量。

如果成员变量和局部变量同名时,则成员变量隐藏。

方法中有同名的局部变量访问时,用this关键字表示。

构造方法是一种特殊的方法,构造方法的名要与类的名相同,而且没有类型,构造方法可以重载。

this关键字为当前对象,不出现含有static中。

Student(String name, int age){
this.name = name;
this.age = age;
}

类的定义

1.定义一个Person类,主要功能是输出姓名,身高,体重,类中有两个构造方法,其中一个构造方法无参数用于初始化,另一个构造方法是有参数的,可传值

  1. 定义Person类的对象,通过对象成员方法输出对象的信息
public class Person {
String name;
double height;
double weight;
Person(){
name = "jeskson";
height = 170;
weight = 100;
}
Person(String name, double height, double weight){
this.name = name;
this.height = height;
this.weight = weight;
}
void print(){
System.out.println(this.name);
System.out.println(this.height);
System.out.println(this.weight);
}
public static void main(String[] args){
Person student = new Person();
student.print(); Person stu = new Person("jeskson",180,100);
stu.print(); }
}
public class Circle {
//成员变量
int r;
final double PI=3.14; //成员方法
double area(){
return PI*r*r;
} //成员方法
double zhou(){
return PI*2*r;
} public static void main(String[] args){
Circle c1;//定义对象
//为对象申请内存空间,自动调用构造方法,如果没有写构造方法,系统会自动产生一个无参的
c1 = new Circle();
c1.r=1;//为对象的变量赋值
System.out.println(c1.area());//输出对象成员方法的返回值
System.out.println(c1.zhou());
} }
public class Circle {
//成员变量
int r;
final double PI=3.14; //无参的构造方法
Circle(){ } //带参的构造方法
Circle(int r){
this.r = r;
} //成员方法
double area(){
return PI*r*r;
} //成员方法
double zhou(){
return PI*2*r;
} public static void main(String[] args){
Circle c1;//定义对象
//为对象申请内存空间,自动调用构造方法,如果没有写构造方法,系统会自动产生一个无参的
c1 = new Circle();
c1.r=1;//为对象的变量赋值
System.out.println(c1.area());//输出对象成员方法的返回值
System.out.println(c1.zhou()); Circle c2 = new Circle(2);//调用带参数的构造方法
System.out.println(c2.area());//输出对象成员方法的返回值
System.out.println(c2.zhou());
} }

Java中的类的访问权限

成员变量的声明

【修饰符】类型 变量名

常用的修饰符关键字有:public、 private、 protected 、 friendly、static 和final。

类:private,friendly,protected,public

包中所有类:friendly,protected,public

包外的子类:protected,public

所有类:public

类中的set和get方法

set方法是用来修改成员变量的值

get方法是用来获取成员变量的值

static关键字

使用static修饰的成员变量为静态变量;用static修饰的类,为静态类,用来修饰方法,则为静态方法。静态变量是归类所有,静态变量直接通过类调用,而不用实例化对象。静态方法也是用类名直接调用的。静态方法只能操作静态变量而不能使用实例变量。

public class Account {
private String name;
private double yu;
private int year;
private double rate=0.025; public Account() {
yu=10;
year=1;
} public Account(double yu, int year) {
this.yu = yu;
this.year = year;
} public void save(double yu){
this.yu+=yu;
} public void feach(double yu){
this.yu-=yu;
} public double total(){
return this.yu+this.rate*this.year*this.yu;
} public static void main(String[] args) {
Account zhangshan=new Account(1000, 3);
zhangshan.save(1000);
System.out.println(zhangshan.total());
}
}

package hh;

public class Worker {
private String ID;
private String name;
private double basic;
private double bonus; public Worker() {
name="jeskson";
basic=1900;
bonus=100;
ID="1024";
} public Worker(String ID, String name, double basic, double bonus) {
super();
this.ID = ID;
this.name = name;
this.basic = basic;
this.bonus = bonus;
} public String getID() {
return ID;
} public void setID(String iD) {
ID = iD;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public double getBasic() {
return basic;
} public void setBasic(double basic) {
this.basic = basic;
} public double getBonus() {
return bonus;
} public void setBonus(double bonus) {
this.bonus = bonus;
} public double getTax(){
if (this.basic+this.bonus<=1600){
return 0;
}
return (this.basic+this.bonus-1600)*0.15;
} public double getSalary(){
if (this.basic+this.bonus<=1600){
return this.basic+this.bonus;
}
return this.basic+this.bonus-this.getTax();
} void print(){
System.out.println("工人姓名:"+this.name);
System.out.println("所得税:"+this.getTax());
System.out.println("实际工资:"+this.getSalary());
} public static void main(String[] args) {
Worker jack=new Worker("1024", "jeskson", 1400, 100);
jack.print();
}
}
public class Student {
String name;
int age;
double height;
double weight;
static Strin monitor;
public Student() { }
public Student(String name, int age, double height, double weight){
this.name = name;
this.age = age;
this.height = height;
this.weight = weight;
}
void print(){
System.out.println(name+" "+age+" "+height+" "+weight+" "+monitor);
}
static void printmonitor(){
System.out.println(monitor);
}
public static void main(String[] args){
Student.monitor = "jeskson";
Student stu = new Student("dashu",20,179,100);
stu.print(); }
}

小礼物走一走 or 点赞

夜谈Java类的定义的更多相关文章

  1. 浅谈java类集框架和数据结构(2)

    继续上一篇浅谈java类集框架和数据结构(1)的内容 上一篇博文简介了java类集框架几大常见集合框架,这一篇博文主要分析一些接口特性以及性能优化. 一:List接口 List是最常见的数据结构了,主 ...

  2. Java类的定义与类的实例化

    目录 Java类的定义与类的实例化 类的定义 定义一个简单的类 定义一个成员变量 定义一个方法 定义一个构造器 类的实例化 创建对象及使用对象: 创建对象的过程在内存中的表现 Java类的定义与类的实 ...

  3. java类中定义接口

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

  4. Java类的定义及其实例化

    如果你不了解类和对象的概念,请猛击这里:Java类和对象的概念 类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public cl ...

  5. 《Java基础知识》Java类的定义及其实例化

    类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public class Dog { String name; int age; ...

  6. java 类内部定义接口

    java类内部可以定义接口,作用可以看作是对类功能的进一步补充,类里面包含两部分:一部分是自己的固定的,一部分是可以变化的,而这可变的部分就编程了一个接口. 另一个作用是避免命名冲突. 示例 类Fru ...

  7. java类的定义与使用

    一 引用数据类型 1.引用数据类型的分类 我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包 含了很多的方法与属性,可供我们使用. ...

  8. 浅谈java类集框架和数据结构(1)

    在另外一篇博客我简单介绍了java类集框架相关代码和理论. 这一篇博客我主要分析一下各个类集框架的原理以及源码分析. 一:先谈谈LinkedList 这是LinkedList源码的开头,我们能看到几点 ...

  9. 7.2 java 类的定义和使用

    /* * 类的定义: * 类是用来描述现实世界的事物的 * * 事物: * 属性 事物的描述信息 * 行为 事物能够做什么 * * 类是如何和事物进行对应的呢? * 类: * 成员变量 * 成员方法 ...

随机推荐

  1. C#简繁体转换

    /// <summary>/// 字符串简体转繁体/// </summary>/// <param name="strSimple"></ ...

  2. xml实现登录表单验证

    定义: XML(eXtended Markup Language,可扩展标记语言)提供了一套跨平台.跨网络.跨程序的语言的数据描述方式,使用XML可以方便地实现数据交换.系统配置.内容管理等常见功能. ...

  3. 安装Caffe纪实

    第一章 引言 在ubuntu16.04安装caffe,几乎折腾了一个月终于成功;做一文章做纪要,以便日后查阅.总体得出的要点是:首先,每操作一步,必须知道如何检验操作的正确性;笔者的多次失误是因为配置 ...

  4. JVM系列3:类加载机制

    了解类加载机制也是深入了解Java的重要一环,它包括加载过程.类加载器.加载机制等内容. 以下是我总结的思维导图. 首先讲讲类加载的时机,以下是会触发类加载的时机: 1.new.get/put/inv ...

  5. Unity与安卓IOS交互

    记录下  安卓与Unity交互中  跳坑  找到的资料. <1>建立交互 http://blog.csdn.net/lizhengwei1989/article/details/54631 ...

  6. Could not find a package,configuration file provided by "G2O" ,G2OConfig.cmake,g2o-config.cmake

    因为项目需要使用到g2o,所以自己从git上面clone下来, git clone https://github.com/RainerKuemmerle/g2o.git 然后: cd g2o mkdi ...

  7. MQ队列堵塞无法读取经验总结

    问题现象: 1号发生本地来帐队列无法读取消息的问题,导致来帐报文均无法正常处理. 原因分析: 应用系统没有修改或上包,昨天交易和消息读取还是一切正常,mbfe的状态也是正常,mq的状态正常,以上正常可 ...

  8. Anaconda3(python3.5.2)中安装opencv3

    1 安装Visual C++2015 redistributable 我是64位和32的都安装了,如果你电脑中已经安装了17的,就先卸载了,不然安装不上. 2 安装依赖包Numpy.Scipy Num ...

  9. object references an unsaved transient instance save the transient instance before flushing

    object references an unsaved transient instance save the transient instance before flushing 对象引用未保存的 ...

  10. [leetcode]19. Remove Nth Node From End of List删除链表倒数第N个节点

    Given a linked list, remove the n-th node from the end of list and return its head. Example: Given l ...